tutorial pengembangan web terbaru
 

XQuery Memilih dan Penyaringan


XML Contoh Dokumen

Kami akan menggunakan "books.xml" dokumen contoh di bawah ini (same XML file as in the previous chapters) .

Melihat "books.xml" file dalam browser Anda .


Memilih dan Penyaringan Elements

Sebagaimana telah kita lihat dalam bab-bab sebelumnya, kita memilih dan menyaring elemen dengan baik ekspresi jalan atau dengan ekspresi FLWOR.

Lihatlah ekspresi FLWOR berikut:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • untuk - (optional) mengikat variabel untuk setiap item dikembalikan oleh ekspresi
  • biarkan - (optional)
  • di mana - (optional) menetapkan kriteria
  • order by - (optional) menentukan jenis-urutan hasilnya
  • kembali - menetapkan apa untuk kembali dalam hasil

Untuk Clause

Untuk klausul mengikat variabel untuk setiap item dikembalikan oleh ekspresi. Untuk hasil klausul dalam iterasi. Ada dapat beberapa untuk klausa dalam ekspresi FLWOR yang sama.

Untuk loop jumlah tertentu kali dalam untuk klausul, Anda dapat menggunakan to keyword:

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>

The at kata kunci dapat digunakan untuk menghitung iterasi:

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>

Hal ini juga memungkinkan dengan lebih dari satu dalam ekspresi dalam untuk klausa. Gunakan koma untuk memisahkan masing-masing dalam ekspresi:

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>

The membiarkan Clause

The membiarkan klausa memungkinkan tugas variabel dan menghindari mengulangi ekspresi yang sama berkali-kali. The membiarkan klausul tidak menghasilkan iterasi.

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

Hasil:

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

Di mana Clause

Mana klausa digunakan untuk menentukan satu atau lebih kriteria untuk hasilnya:

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

Urutan oleh Clause

Urutan oleh klausa digunakan untuk menentukan urutan dari hasilnya. Di sini kita ingin memesan hasil berdasarkan 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>

Kembalinya Clause

Klausul kembali menentukan apa yang harus 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>