XQuery Seçme ve Filtreleme
XML Örnek Belgesi
Aşağıdaki örneklerde "books.xml" belgesini kullanacağız (önceki bölümlerde olduğu gibi aynı XML dosyası).
Tarayıcınızda "books.xml" dosyasını görüntüleyin .
Elemanları Seçme ve Filtreleme
Önceki bölümlerde gördüğümüz gibi, Path ifadesi veya FLWOR ifadesi ile öğeleri seçiyor ve filtreliyoruz.
Aşağıdaki FLWOR ifadesine bakın:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
- for - (isteğe bağlı) in ifadesi tarafından döndürülen her öğeye bir değişken bağlar
- izin ver - (isteğe bağlı)
- nerede - (isteğe bağlı) bir kriter belirtir
- order by - (isteğe bağlı) sonucun sıralama düzenini belirtir
- dönüş - sonuçta neyin döndürüleceğini belirtir
for Cümlesi
for yan tümcesi, in ifadesi tarafından döndürülen her öğeye bir değişken bağlar. for yan tümcesi yinelemeyle sonuçlanır. Aynı FLWOR ifadesinde birden çok for yan tümcesi olabilir.
Bir for yan tümcesinde belirli sayıda döngü yapmak için to anahtar sözcüğünü kullanabilirsiniz:
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 sözcüğü yinelemeyi 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>
Ayrıca for yan tümcesinde birden fazla ifadeye izin verilir. İfadede her birini 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>
izin maddesi
Let yan tümcesi, değişken atamalarına izin verir ve aynı ifadenin birçok kez tekrarlanmasını önler. Let yan tümcesi yinelemeyle sonuçlanmaz.
let $x := (1 to 5)
return <test>{$x}</test>
Sonuç:
<test>1 2 3 4 5</test>
nerede Madde
Where yan tümcesi, sonuç için bir veya daha fazla kriter belirtmek için kullanılır:
where $x/price>30 and $x/price<100
Maddeye göre sipariş
Cümleye göre sıralama, sonucun sıralama düzenini belirtmek için kullanılır. Burada sonucu kategoriye ve başlığa göre sıralamak istiyoruz:
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üş Maddesi
İade maddesi neyin iade edileceğini 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>