Pemilihan dan Penapisan 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

Pilih dan menyaring elemen

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

Lihat ekspresi FLWOR di bawah ini:

untuk $x di doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
kembalikan $x/title
for
(可选) ikat variabel ke setiap item yang dihasilkan oleh ekspresi in
let
(可选)
where
(可选) atur kondisi
order by
(可选) atur urutan penempatan hasil
return
menentukan konten yang akan kembalikan 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 to

for $x in (1 to 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 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>

Juga di dalam perintah forMemungkinkan 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>

Perintah let

Perintah let dapat melakukan penugasan variabel dan menghindari pengulangan ekspresi yang sama. Perintah let tidak akan menyebabkan iterasi.

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

Hasil:

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

Perintah di mana

Perintah di mana digunakan untuk menetapkan satu atau lebih kondisi (kriteria) untuk hasil.

di mana $x/price>30 dan $x/price<100

Perintah atur urutan

Perintah atur urutan digunakan untuk menentukan urutan hasil. Di sini, kita akan mengatur hasil berdasarkan category dan judul:

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

Perintah kembalikan:

Perintah kembalikan menentukan yang akan dikembalikan.

untuk $x di doc("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>