Tutorial XQuerylogin
Tutorial XQuery
pengarang:php.cn  masa kemas kini:2022-04-21 16:43:44

Pemilihan dan penapisan XQuery



Dokumen Contoh XML

Kami akan terus menggunakan dokumen "books.xml" ini dalam contoh berikut (fail XML yang sama digunakan dalam bab di atas).

Lihat fail "books.xml" dalam penyemak imbas anda.


Memilih dan menapis elemen

Seperti yang dilihat dalam bab sebelumnya, kami menggunakan ungkapan laluan atau ungkapan FLWOR untuk memilih dan menapis elemen.

Lihat ungkapan FLWOR berikut:

untuk $x dalam doc("books.xml")/kedai buku/buku
di mana $x/price>30
pesanan dengan $x/title
kembali $x/title
  • untuk - (pilihan) Gabungkan pembolehubah kepada setiap item yang dikembalikan oleh ungkapan dalam

  • biar - (pilihan)

  • di mana - (pilihan) tetapkan syarat

  • pesanan mengikut - (pilihan ) Tetapkan susunan keputusan

  • kembali - Nyatakan kandungan yang dikembalikan dalam hasil

untuk pernyataan

Penyataan untuk mengikat pembolehubah kepada setiap item yang dikembalikan oleh ungkapan dalam. Pernyataan for menghasilkan lelaran. Berbilang untuk pernyataan boleh wujud dalam ungkapan FLWOR yang sama.

Untuk menggelungkan bilangan kali tertentu dalam pernyataan untuk, anda boleh menggunakan kata kunci untuk:

untuk $x dalam (1 hingga 5)
mengembalikan < ;{$x}</test>

Keputusan:

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

Kata kunci di boleh digunakan untuk mengira lelaran:

untuk $x pada $i dalam doc("books.xml")/kedai buku/buku/tajuk
kembali <buku>{ $i}. {data($x)}</book>

Hasil:

<buku>1 ><buku>2. Harry Potter</buku>
<buku>3
Berbilang dalam ungkapan juga dibenarkan dalam pernyataan untuk. Sila gunakan koma untuk memisahkan setiap satu dalam ungkapan:
untuk $x dalam (10,20), $y dalam (100,200)

kembali <test>x={$x} dan y ={$y}</test>

Keputusan:
<test>x=10 dan y=100</test>

< ujian>x=10 dan y=200</ujian>

<ujian>x=20 dan y=100</ujian>
<ujian>x=20 dan y=200</ujian> ;

penyataan biarkan

penyataan biarkan boleh menyelesaikan tugasan pembolehubah dan mengelakkan pengulangan ungkapan yang sama beberapa kali. Pernyataan let tidak menyebabkan lelaran.

biarkan $x := (1 hingga 5)
kembali <ujian>{$x}</test>

Keputusan:

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

di mana pernyataan

di mana pernyataan digunakan untuk menetapkan satu atau lebih syarat untuk keputusan ( kriteria).

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

pesanan mengikut penyata

perintah demi penyata digunakan untuk menentukan pesanan susunan keputusan. Di sini, kita perlu mengisih hasil mengikut kategori dan tajuk:

untuk $x in doc("books.xml")/bookstore/book
pesanan mengikut $x/@category , $x/title
kembali $x/title

Keputusan:

<title lang="en">Harry Potter</title>
<title lang="en">Italian Setiap Hari</title>
<title lang="en">Pembelajaran XML</title>
<title lang="en"> Kick Start</title>

penyata pulangan:

penyataan pulangan menentukan kandungan yang akan dikembalikan.

untuk $x dalam doc("books.xml")/kedai buku/buku
kembali $x/tajuk

Hasil:

<title lang="en">Italian Setiap Hari</title>
<title lang="en">Harry Potter</title>
<title lang="en"> ;