XQuery Memilih dan Penyaringan
dokumen XML misalnya
Pada contoh berikut kita akan terus menggunakan ini "books.xml" (file XML yang sama dan bagian atas digunakan) dokumen.
Lihat "books.xml" file di browser Anda .
Pilih dan menyaring elemen
Seperti yang terlihat dalam bab sebelumnya, kita menggunakan ekspresi FLWOR atau ekspresi path untuk memilih dan elemen filter.
Pertimbangkan ekspresi FLWOR berikut:
where $x/price>30
order by $x/title
return $x/title
- untuk - (optional) untuk masing-masing item yang dibundel dikembalikan oleh ekspresi dalam variabel
- biarkan - (opsional)
- di mana - (opsional) menetapkan kondisi
- order by - (opsional) mengatur urutan dalam hasil
- kembali - ketentuan dalam hasil kembali konten
untuk pernyataan
Pernyataan untuk variabel terikat setiap item dikembalikan oleh ekspresi. untuk pernyataan Iterasi. Mungkin ada beberapa untuk pernyataan yang sama dalam ekspresi FLWOR.
Untuk sejumlah tertentu kali dalam untuk pernyataan loop, Anda dapat menggunakan kata kunci untuk:
return <test>{$x}</test>
hasil:
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
Kata kunci dapat digunakan untuk menghitung iterasi di:
return <book>{$i}. {data($x)}</book>
hasil:
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
Dalam pernyataan itu juga memungkinkan untuk lebih dari satu dalam ekspresi. Harap gunakan koma untuk memisahkan masing-masing dalam ungkapan:
return <test>x={$x} and y={$y}</test>
hasil:
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
biarkan pernyataan
biarkan pernyataan dapat variabel lengkap distribusi, dan menghindari mengulangi ekspresi yang sama. biarkan pernyataan tidak menyebabkan iterasi.
return <test>{$x}</test>
hasil:
di mana laporan
di mana pernyataan digunakan untuk mengatur hasil dari satu atau lebih kondisi (kriteria).
order by pernyataan
order by pernyataan untuk mengurutkan hasil dari suatu tatanan yang telah ditentukan. Di sini, kita ingin mengurutkan hasil sesuai dengan kategori dan judul:
order by $x/@category, $x/title
return $x/title
hasil:
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
Pernyataan kembali:
pernyataan kembali menetapkan untuk kembali isi.
return $x/title
hasil:
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>