Latest web development tutorials

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:

for $x in doc("books.xml")/bookstore/book
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:

for $x in (1 to 5)
return <test>{$x}</test>

hasil:

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

Kata kunci dapat digunakan untuk menghitung iterasi di:

for $x at $i in doc("books.xml")/bookstore/book/title
return <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>

Dalam pernyataan itu juga memungkinkan untuk lebih dari satu dalam ekspresi. Harap gunakan koma untuk memisahkan masing-masing dalam ungkapan:

for $x in (10,20), $y in (100,200)
return <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>

biarkan pernyataan

biarkan pernyataan dapat variabel lengkap distribusi, dan menghindari mengulangi ekspresi yang sama. biarkan pernyataan tidak menyebabkan iterasi.

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

hasil:

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

di mana laporan

di mana pernyataan digunakan untuk mengatur hasil dari satu atau lebih kondisi (kriteria).

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

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:

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>

Pernyataan kembali:

pernyataan kembali menetapkan untuk kembali isi.

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>