XQuery välja och filtrera
- Föregående sida XQuery lägga till
- Nästa sida XQuery funktioner
XML-exempel
Vi kommer att fortsätta använda denna "books.xml"-dokumentet (som är lika som det XML-dokument som användes i kapitlen ovan).
Välj och filtrera element
Som vi såg i föregående kapitel använder vi sökvägsuttryck eller FLWOR-uttryck för att välja och filtrera element.
Se FLWOR-uttrycket nedan:
for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title
- for
- (valfritt) Binda en variabel till varje element som returneras av ett in-uttryck
- let
- (valfritt)
- where
- (valfritt) Ställ in en villkor
- order by
- (valfritt) Ställ in排列顺序 av resultatet
- return
- Bestämmer innehållet som returneras i resultatet
for-sats
for-sats kan binda en variabel till varje element som returneras av ett in-uttryck. for-sats kan generera en iteration. Det är möjligt att ha flera for-satser i samma FLWOR-uttryck.
För att upprepa en for-sats ett specifikt antal gånger kan du användaNyckelord tills :
for $x i (1 tills 5) return <test>{$x}</test>
Resultat:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
Nyckelord vid Kan användas för att beräkna iterationer:
for $x vid $i i doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
Resultat:
<book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Learning XML</book>
I for-satsen är det sammaDet är möjligt att använda flera in-uttryckAnvänd komma för att separera varje in-uttryck:
for $x in (10,20), $y in (100,200) return <test>x={$x} och y={$y}</test>
Resultat:
<test>x=10 och y=100</test> <test>x=10 och y=200</test> <test>x=20 och y=100</test> <test>x=20 och y=200</test>
let uttryck
let-satsen kan utföra variabel tilldelning och kan undvika att upprepa samma uttryck flera gånger. let-satsen orsakar inte iteration.
let $x := (1 to 5) return <test>{$x}</test>
Resultat:
<test>1 2 3 4 5</test>
where-satsen
where-satsen används för att specificera en eller flera villkor (criteria) för resultaten.
where $x/price>30 and $x/price<100
order by-satsen
order by-satsen används för att specificera den ordningsföljd som resultatet ska ha. Här ska vi sortera resultaten baserat på category och title:
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
Resultat:
<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>
return-satsen:
return-satsen specificerar det innehåll som ska returneras.
for $x in doc("books.xml")/bookstore/book return $x/title
Resultat:
<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>
- Föregående sida XQuery lägga till
- Nästa sida XQuery funktioner