XQuery välja och filtrera
- Föregående sida Lägg till XQuery
- Nästa sida XQuery funktioner
XML-exempel
Vi kommer att fortsätta använda denna "books.xml"-dokument i de följande exemplen (och samma XML-fil som användes i föregående kapitel).
Välja och filtrera element
Som du såg i föregående kapitel använder vi path-expressions eller FLWOR-expressions för att välja och filtrera element.
Se exempel på FLWOR-expressionen 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 objekt som returneras av en in-expression
- let
- (valfritt)
- where
- (valfritt) Ställa in en villkor
- order by
- (valfritt) Ställa in resultatets ordning
- return
- specificera innehållet som returneras i resultatet
for-sats
for-sats kan binda en variabel till varje objekt som returneras av en in-expression. for-sats kan generera en iteration. Det kan finnas flera for-sats i samma FLWOR-expression.
Om du vill upprepa en specifik antal gånger i en for-sats, kan du användanyckelord to :
for $x in (1 to 5) return <test>{$x}</test>
Resultat:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
Nyckelordet at Kan användas för att beräkna iterationer:
for $x at $i in 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>
Det är samma i for-satsenDet ä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} and y={$y}</test>
Resultat:
<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>
let-satsen
let-satsen kan utföra variabeltilldelning och undvika att upprepa samma uttryck flera gånger. let-satsen orsakar ingen 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 (kriterier) 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 resultaten 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">Varje dag italienskt</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">Varje dag italienskt</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- Föregående sida Lägg till XQuery
- Nästa sida XQuery funktioner