Pemilihan dan Penyaringan XQuery

Dokumen Instan XML

Kami akan melanjutkan menggunakan dokumen "books.xml" di contoh di bawah ini (yang sama seperti berkas XML yang digunakan di bab di atas).

Lihat file "books.xml" di browser Anda.

Memilih dan menyaring elemen

Seperti yang dilihat di bab sebelumnya, kita menggunakan ekspresi jalur atau ekspresi FLWOR untuk memilih dan menyaring elemen.

Lihat ekspresi FLWOR di bawah ini:

for $x in doc("books.xml")/bookstore/book
di mana $x/price>30
urut berdasarkan $x/title
return $x/title
for
(opsional) Ikat setiap item yang diproduksi oleh ekspresi in ke variabel
let
(opsional)
di mana
(opsional) Atur kondisi
urut berdasarkan
(opsional) Atur urutan penyelesaian hasil
kembalikan
Tentukan konten yang dikembalikan dalam hasil

Perintah for

Perintah for dapat mengikat variabel ke setiap item yang diproduksi oleh ekspresi in. Perintah for dapat memproduksi iterasi. Dalam ekspresi FLWOR, dapat ada beberapa perintah for.

Untuk melakukan perulangan dengan jumlah yang ditentukan dalam perintah for, Anda dapat menggunakanKata kunci ke :

untuk $x dalam (1 ke 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:

untuk $x pada $i dalam doc("books.xml")/bookstore/book/title
kembalikan <book>{$i}. {data($x)}</book>

Hasil:

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. Memulai XQuery</book>
<book>4. Belajar XML</book>

Dalam perintah for jugaMemungkinkan banyak ekspresi inGunakan koma untuk memisahkan setiap ekspresi in:

untuk $x dalam (10,20), $y dalam (100,200)
kembalikan <test>x={$x} dan y={$y}</test>

Hasil:

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

perintah let

Kalimat let dapat melakukan alokasi variabel dan menghindari pengulangan ekspresi yang sama. Kalimat let tidak akan menyebabkan iterasi.

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

Hasil:

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

Kalimat where

Kalimat where digunakan untuk menentukan satu atau lebih kondisi (criteria) untuk hasil.

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

Kalimat order by

Kalimat order by digunakan untuk menentukan urutan penyelesaian hasil. Disini, kita akan mengurutkan hasil berdasarkan category dan title:

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>

Kalimat return:

Kalimat return menentukan konten yang akan di kembalikan.

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>