XQuery Seçme ve Filtreleme
- Önceki Sayfa XQuery Ekle
- Sonraki Sayfa XQuery Fonksiyonları
XML örnek belgesi
Aşağıdaki örneklerde, bu "books.xml" belgesini (yukarıdaki bölümlerde kullanılan XML dosyası ile aynı) kullanmaya devam edeceğiz.
Elementleri seçme ve filtreleme
Önceki bölümlerde gördüğünüz gibi, elementleri seçmek ve filtrelemek için yol ifadeleri veya FLWOR ifadeleri kullanıyoruz.
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
- (Opsiyonel) Her bir in ifadesi tarafından döndürülen her bir projeye bir değişken bağlar
- let
- (Opsiyonel)
- where
- (Opsiyonel) Bir şart belirler
- order by
- (Opsiyonel) Sonucun sıralama düzenini belirler
- return
- Sonuçta döndürülecek içeriği belirler
for ifadesi
for ifadesi, her bir projeye in ifadesi tarafından döndürülen her bir öğeye bir değişken bağlayabilir. for ifadesi döngü oluşturabilir. Aynı FLWOR ifadesinde birden fazla for ifadesi olabilir.
Bir for ifadesinde belirli sayıda döngüde dönmek istiyorsanız, aşağıdaki kullanabilirsinizkelime to :
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>
Anahtar kelime at Döngü iterasyonlarını hesaplamak için kullanılır:
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>
for ifadesinde deBirden fazla in ifadesine izin verilirHer bir in ifadesini virgülle ayırı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 ifadesi
let ifadesi, değişken atamaları yapabilir ve aynı ifadelerin tekrarını önleyebilir. let ifadesi döngüye neden olmaz.
let $x := (1 to 5) return <test>{$x}</test>
Sonuç:
<test>1 2 3 4 5</test>
where ifadesi
where ifadesi, sonuçlar için bir veya daha fazla koşul (kriter) belirler.
where $x/price>30 and $x/price<100
order by ifadesi
order by ifadesi, sonuçların sıralama düzenini belirler. Burada, sonuçları category ve title 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="tr">Her gün İtalyan</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
return ifadesi:
return ifadesi, döndürülecek içeriği belirler.
for $x in doc("books.xml")/bookstore/book return $x/title
Sonuç:
<title lang="tr">Her gün İtalyan</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- Önceki Sayfa XQuery Ekle
- Sonraki Sayfa XQuery Fonksiyonları