Pemilihan dan Penyaringan XQuery

Dokumen Contoh XML

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

Lihat berkas "books.xml" di pelayar 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
diurutkan $x/title
return $x/title
for
(opsional) Ikatan variabel ke setiap item yang diproduksi oleh ekspresi in
let
(opsional)
di mana
(opsional) Tetapkan syarat
diurutkan
(opsional) Tetapkan urutan hasil
kembalikan
Menentukan konten yang kembali di dalam hasil

pernyataan for

Pernyataan for dapat menahan variabel ke setiap item yang diproduksi oleh ekspresi in. Pernyataan for dapat menghasilkan iterasi. Dalam ekspresi FLWOR yang sama dapat ada beberapa pernyataan for.

Untuk melakukan pengulangan berikutnya sebanyak jumlah yang ditentukan dalam pernyataan 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. XQuery Kick Start</book>
<book>4. Learning XML</book>

Di dalam pernyataan for jugaMemungkinkan banyak ekspresi inSila gunakan 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>

let 语句

Perintah let dapat melaksanakan penugasan variabel dan menghindari penulisan ulang ekspresi yang sama berulang-ulang. Perintah let tidak akan mengakibatkan iterasi.

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

Hasil:

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

Perintah where

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

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

Perintah order by

Perintah order by digunakan untuk menentukan urutan pengurutan 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>

Perintah return:

Perintah return menentukan kandungan 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>