Pemilihan dan Penyaringan XQuery

Dokumen Contoh XML

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

Lihat berkas "books.xml" di browser Anda

Memilih dan menyaring elemen

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

Lihat ekspresi FLWOR di bawah ini:

untuk $x di dok("books.xml")/bookstore/book
di mana $x/price>30
atur urutan $x/title
kembalikan $x/title
for
(pilihan) Ikutkan variabel ke setiap item yang dihasilkan oleh ekspresi in
let
(pilihan)
di mana
(pilihan) Tetapkan kondisi
atur urutan
(pilihan) Tetapkan urutan hasil
kembalikan
atur konten yang akan dikembalikan dalam hasil

pernyataan for

pernyataan for dapat mengikat variabel ke setiap item yang dihasilkan oleh ekspresi in. Pernyataan for dapat memicu iterasi. Dalam ekspresi FLWOR yang sama, dapat ada beberapa pernyataan for.

Untuk mengulangi beberapa kali dalam pernyataan for, Anda dapat menggunakankata kunci ke

untuk $x dalam (1 ke 5)
kembalikan <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 di dok("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>

pada kalimat for jugaMemungkinkan banyak ekspresi inSilakan gunakan koma untuk memisahkan setiap ekspresi in:

untuk $x dalam (10,20), $y dalam (100,200)
kembalikan <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>

kalimat biarkan

kalimat biarkan dapat melakukan alokasi variabel dan menghindari penulisan ekspresi yang sama berulang-ulang. Kalimat biarkan tidak menyebabkan iterasi.

biarkan $x := (1 sampai 5)
kembalikan <test>{$x}</test>

Hasil:

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

kalimat dimana

kalimat dimana digunakan untuk menetapkan satu atau lebih kriteria (kriteria) untuk hasil.

dimana $x/price>30 dan $x/price<100

kalimat atur urutan

kalimat atur urutan digunakan untuk menentukan urutan hasil. Disini, kita akan mengatur hasil berdasarkan category dan title:

untuk $x di dok("books.xml")/bookstore/book
atur urutan berdasarkan $x/@category, $x/title
kembalikan $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 kembalikan:

kalimat kembalikan menentukan konten yang harus dikembalikan.

untuk $x di dok("books.xml")/bookstore/book
kembalikan $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>