Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 XML XQuery
  1. XML XQuery
  2. XML XQuery - II
DIVASTATOR
     
Автор  DIVASTATOR (05.03.2006 20:28)  съобщение до автора
Погледнат  3358 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (0)  абонирай се за XML
    Страница 2 / 2

 



FLWOR
Ще използваме същия пример както в предишната точка("book.xml").Разгледайте долния пример:
CODE
1
doc("books.xml")/bookstore/book[price>30]/title
Тази фраза ще избере всички title елементи под book, които са под bookstore елементът, и имат стойност по-висока от 30.Долния FLWOR пример ще избере абсолютно същото нещо като фразата по-горе:
CODE
1
2
3
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title
Резултатът ще бъде такъв:
CODE
1
2
<title lang="en">XQuery Kick Start</title>
<
title lang="en">Learning XML</title>
С FLWOR можете да сортирате резултатът:
CODE
1
2
3
4
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
FLWOR е съкращение от "For, Let, Where, Order by, Return".
Клаузата For ще избере всички book елементи под bookstore в променливата $x.
Клаузата Where ще избере book елементът с title елемент в него с стойност по-голяма от 30.
Клаузата order by дерфинира редът на сортиране.
Клаузата Return определя кое трябва да бъде върнато.Тук се връща елементът title.
Резултатът в XQuery фраза ще бъде следия:
CODE
1
2
<title lang="en">Learning XML</title>
<
title lang="en">XQuery Kick Start</title>
Разгледайте долния пример:
CODE
1
2
3
for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x
Това ще избере всички елементи title под book, който е под bookstore и връща title елементът в азбучен ред.Ако искаме да ги добавим в лист на HTML просто ще добавим таговете <ul>, <li> в FLWOR фразата:
CODE
1
2
3
4
5
6
7
<ul>
{
for $x in doc("books.xml")/bookstore/book/title
order by $x
return
<li>{$x}</li>
}
</ul>
Резултатът ще бъде следния:
CODE
1
2
3
4
5
6
<ul>
<
li><title lang="en">Everyday Italian</title></li>
<
li><title lang="en">Harry Potter</title></li>
<
li><title lang="en">Learning XML</title></li>
<
li><title lang="en">XQuery Kick Start</title></li>
</
ul>
Сега искаме да премахнем елементът title и да се показва само информацията в него:
CODE
1
2
3
4
5
6
7
<ul>
{
for $x in doc("books.xml")/bookstore/book/title
order by $x
return
<li>{data($x)}</li>
}
</ul>
Резултатът ще бъде следния:
CODE
1
2
3
4
5
6
<ul>
<
li>Everyday Italian</li>
<
li>Harry Potter</li>
<
li>Learning XML</li>
<
li>XQuery Kick Start</li>
</
ul>
ТЕРМИНИ
В XQuery има седем основни вида връзки.Това са:елемнти, атрибути, текст, namespaces, инструкции на процеса, коментари и документ(корен).XML документа е представен като дърво от възли.Коренът на това дърво е документът(коренът).Погледнете долния пример:
CODE
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="ISO-8859-1"?>
<
bookstore>
<
book>
  <
title lang="en">Harry Potter</title>
  <
author>J K. Rowling</author>
  <
year>2005</year>
  <
price>29.99</price>
</
book>
</
bookstore>
Ето и възлите в този пример:
CODE
1
2
3
4
5
<bookstore>  (document node)

<author>J K. Rowling</author>  (element node)

lang="en"  (attribute node)
Малки стойности са връзки без деца или родители:
CODE
1
2
J K. Rowling
"en"
Отношенията между в XQuery са същите като при XPath.
СИНТАКСИСЪТ
XQuery е много чувствилен и затова елементите, атрибутите, променливите и др. трябва да бъдат валидни XML имена.Можете да използвате и двойни и единични кавички.Променливите в XQuery се дефинират от $.Коментарите се дефинират от ( и : - (:коментар:).Също така в XQuery може даизползвате така наречените логически "if-then-else".Те се използват най-вече при програмиране.Ето един пример:
CODE
1
2
3
4
for $x in doc("books.xml")/bookstore/book
return    if ($x/@category="CHILDREN")
    then
<child>{data($x/title)}</child>
    else
<adult>{data($x/title)}</adult>
Скобите при if са препоръчителни.else е препоръчителен но може да бъде просо else ().Резултатът ще бъде:
CODE
1
2
3
4
<adult>Everyday Italian</adult>
<
child>Harry Potter</child>
<
adult>Learning XML</adult>
<
adult>XQuery Kick Start</adult>
В XQuery има два основни начина за сравняване.
1.Главни: =, !=, <, <=, >, >=
2.Стойности: eq, ne, lt, le, gt, ge
Разликите в двата начина е показан долу:
CODE
1
2
3
4
$bookstore//book/@q > 10
Горната фраза ще върне вярно ако атрибутът q им стойност по-голяма от 10
$bookstore//book/@q gt 10
Горната фраза ще върне вярно ако има само един атрибут q върнат от фразата,и неговата стойност е по-голяма от 10.Ако има повече от един q атрибут, който е върнат тогава ще има грешка.



 << Предишна страница  


Ключови думи: xml xquery


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: DIVASTATOR  
Какво мога да кажа за мен.Аз съм на 17 години от гр. София.Занимавам се с Web Design не професионално (като хоби ми е), но смятам да си искам да си изкарвам хляба с това.За момента нямам готови качени в интернет сайтове, но сега работя над един и се надявам скоро да го има.Това е.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008