Select and Filter in XQuery

XML sample dokumento

Magpapatuloy tayo sa mga halimbawa sa ibaba gamit ang "books.xml" na dokumento (ay ang parehong file na ginamit sa nakaraang mga kabanata).

Tingnan ang "books.xml" na file sa iyong browser.

Piliin at suriin ang mga elemento

Tulad ng nakita natin sa nakaraang mga kabanata, gumagamit tayo ng expression ng path o FLWOR upang piliin at suriin ang mga elemento.

Tingnan ang FLWOR expression sa ibaba:

magpa-for $x sa doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
ibabalik $x/title
for
(optional) Itataliwas ang variable sa bawat item na ibinabalik ng expression na may in
let
(optional)
where
(optional) Itakda ang isang kondisyon
order by
(optional) Itakda ang pagkakasunud-sunod ng resulta
return
tuturuan kung anong nilalaman na ibabalik sa resulta

statement ng for

Ang statement ng for ay maaaring itataliwas ang variable sa bawat item na ibinabalik ng expression na may in. Ang statement ng for ay maaaring gumawa ng pag-iterasyon. Maaaring magkaroon ng maraming statement ng for sa isang FLWOR expression.

Kung gusto mong magpalakad ng paraan na magpalakad nang ilang beses sa isang statement ng for, maaring gamitin mo angpalatandaan sa :

para $x sa (1 sa 5)
ibabalik <test>{$x}</test>

Resulta:

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

Panguluan na at makakatulong sa pagtutuos ng pag-iterasyon:

magpa-for $x sa $i in doc("books.xml")/bookstore/book/title
ibabalik <book>{$i}. {data($x)}</book>

Resulta:

<book>1. Bawat araw na Italyano</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

Sa paraan ng for statement din.Maaaring magkaroon ng maraming expression sa in.Maaaring gamitin ang kumahatid upang hatiin ang bawat expression sa in.

magpa-for $x sa (10,20), $y sa (100,200)
ibabalik <test>x={$x} and y={$y}</test>

Resulta:

<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>

Ang palit na let:

Ang palit na let ay nagbibigay ng kapangyarihan sa pag-asign ng variable, at makakaiwas sa pagpapaubos ng kaparehong ekspresyon nang madalas. Ang palit na let ay hindi nagdudulot ng pag-iterasyon.

mag-asign si $x := (1 to 5)
ibabalik <test>{$x}</test>

Resulta:

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

Ang ayusin na palit:

Ang ayusin na palit ay ginagamit upang itukoy isang o ilang kondisyon (criteria) ng resulta.

saan $x/price>30 at $x/price<100

Ang ayusin na palit:

Ang ayusin na palit ay ginagamit upang tukuyin ang pagkakaparehong ng resulta. Dito, gusto naming ayusin ang resulta ayon sa category at title:

magpa-for $x sa doc("books.xml")/bookstore/book
ayusin sa $x/@category, $x/title
ibabalik $x/title

Resulta:

<title lang="en">Harry Potter</title>
<title lang="fil">Bawat araw na Italyano</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

Ang ibabalik na palit:

Ang ibabalik na palit ay nagtutukoy sa nilalalagay na ibabalik.

magpa-for $x sa doc("books.xml")/bookstore/book
ibabalik $x/title

Resulta:

<title lang="fil">Bawat araw na Italyano</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>