En son web geliştirme öğreticiler
 

XQuery Seçme ve Filtreleme


XML Örneği Belgesi

Biz kullanacağız "books.xml" Aşağıdaki örneklerde belgeyi (same XML file as in the previous chapters) .

Görüntüle "books.xml" dosyayı tarayıcınıza .


Seçme ve Filtreleme Elemanları

Daha önceki bölümlerde gördüğümüz gibi, biz seçip ya bir yol ifadesi ile veya bir FLWOR ifadeyle elemanları filtreliyor.

Aşağıdaki FLWOR ifadeye bak:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • için - (optional) ifade tarafından döndürülen her madde için bir değişken olarak bağlanan
  • ver - (optional)
  • burada - (optional) , bir kriterleri belirler
  • tarafından sipariş - (optional) sonucunun sort-sırasını belirtir
  • Dönüş - Sonuç ne dönmek belirtir

Madde için

Madde için ifadede tarafından döndürülen her öğe için bir değişken bağlar. tekrarında fıkra sonuçları için. Aynı FLWOR ifadede maddeleri için birden olabilir.

Döngü bir maddesini kez belirli sayıda için, kullanabilir to anahtar kelime:

for $x in (1 to 5)
return <test>{$x}</test>

Sonuç:

<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>

at anahtar kelime iterasyon saymak için kullanılabilir:

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>

Sonuç:

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

Aynı zamanda ilgili hüküm de ifadesinde birden fazla izin verilir. ifadesinin her ayırmak için virgül kullanın:

for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>

Sonuç:

<test>x=10 and y=100</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>

let Clause

let fıkra değişken atamalarının izin verir ve aynı ifade defalarca tekrarlayarak önler. let fıkra yineleme yol açmaz.

let $x := (1 to 5)
return <test>{$x}</test>

Sonuç:

<test>1 2 3 4 5</test>

nerede Clause

burada fıkra sonucu için bir veya daha fazla kriterlerini belirtmek için kullanılır:

where $x/price>30 and $x/price<100

Madde tarafından sipariş

maddesi ile sipariş sonucu sıralama düzenini belirtmek için kullanılır. Burada kategori ve başlığa göre sonuç sipariş etmek istiyorum:

for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title

Sonuç:

<title lang="en">Harry Potter</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

dönüş Madde

Dönüş fıkra döndürülecek ne belirtir.

for $x in doc("books.xml")/bookstore/book
return $x/title

Sonuç:

<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>