Pemilihan dan Penyaringan XQuery
Dokumen Contoh XML
Kami akan menggunakan dokumen "books.xml" dalam contoh di bawah ini (file XML yang sama seperti pada bab sebelumnya).
Lihat file "books.xml" di browser Anda .
Memilih dan Memfilter Elemen
Seperti yang telah kita lihat di bab sebelumnya, kita memilih dan memfilter elemen dengan ekspresi Path atau dengan ekspresi FLWOR.
Perhatikan ekspresi FLWOR berikut:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
- for - (opsional) mengikat variabel ke setiap item yang dikembalikan oleh ekspresi in
- biarkan - (opsional)
- di mana - (opsional) menentukan kriteria
- order by - (opsional) menentukan urutan-urutan hasil
- return - menentukan apa yang harus dikembalikan dalam hasil
untuk Klausa
Klausa for mengikat variabel ke setiap item yang dikembalikan oleh ekspresi in. Klausa for menghasilkan iterasi. Ada beberapa klausa for dalam ekspresi FLWOR yang sama.
Untuk mengulang beberapa kali dalam klausa for, Anda dapat menggunakan kata kunci to :
for $x in (1 to 5)
return <test>{$x}</test>
Hasil:
<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
Kata kunci at dapat digunakan untuk menghitung iterasi:
for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>
Hasil:
<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
Itu juga diperbolehkan dengan lebih dari satu ekspresi dalam klausa for. Gunakan koma untuk memisahkan masing-masing dalam ekspresi:
for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>
Hasil:
<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>
Klausa biarkan
Klausa let memungkinkan penetapan variabel dan menghindari pengulangan ekspresi yang sama berkali-kali. Klausa let tidak menghasilkan iterasi.
let $x := (1 to 5)
return <test>{$x}</test>
Hasil:
<test>1 2 3 4 5</test>
Klausa dimana
Klausa where digunakan untuk menentukan satu atau lebih kriteria untuk hasil:
where $x/price>30 and $x/price<100
Urutan menurut Klausa
Urutan demi klausa digunakan untuk menentukan urutan hasil. Di sini kami ingin mengurutkan hasil berdasarkan kategori dan judul:
for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title
Hasil:
<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>
Klausul pengembalian
Klausa pengembalian menentukan apa yang akan dikembalikan.
for $x in doc("books.xml")/bookstore/book
return $x/title
Hasil:
<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>