Neueste Web-Entwicklung Tutorials
 

XQuery Auswählen und Filtern


Das XML-Dokument Beispiel

Wir werden die Verwendung "books.xml" Dokuments in den folgenden Beispielen (same XML file as in the previous chapters) - (same XML file as in the previous chapters) .

Sehen Sie sich die "books.xml" Datei in Ihrem Browser .


Auswählen und Filterelemente

Wie wir in den vorherigen Kapiteln gesehen haben, sind wir die Auswahl und Filterelemente entweder mit einem Pfadausdruck oder mit einem FLWOR Ausdruck.

Schauen Sie sich die folgenden FLWOR Ausdruck:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • für - (optional) bindet , eine Variable zu jedem Element durch die im Ausdruck zurückgegeben
  • lassen - (optional)
  • wo - (optional) gibt ein Kriterium
  • Um durch - (optional) gibt die Sortierreihenfolge des Resultats
  • Rückkehr - Gibt an, was im Ergebnis zurück

Die für Klausel

Die für Klausel bindet eine Variable an jedes Element durch die in Ausdruck zurückgegeben. Die für Klausel ergibt Iteration. Es kann für Klauseln in dem gleichen FLWOR Ausdruck mehrfach sein.

Um Schleife eine bestimmte Anzahl von Malen in einem für Klausel, können Sie das verwenden , to Stichwort:

for $x in (1 to 5)
return <test>{$x}</test>

Ergebnis:

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

Die at Schlüsselwort kann verwendet werden , um die Iteration zu zählen:

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>

Ergebnis:

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

Es ist auch mit mehr als einem Ausdruck in der für Klausel erlaubt. Das Komma in jeden Ausdruck trennen:

for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>

Ergebnis:

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

Die Klausel LET

Die Klausel LET ermöglicht variable Zuweisungen und es vermeidet die gleichen Ausdruck oft wiederholen. Die Klausel LET führt nicht zu Iteration.

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

Ergebnis:

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

Die Klausel where

Die where-Klausel wird verwendet, um ein oder mehrere Kriterien für das Ergebnis angeben:

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

Die ORDER BY-Klausel

Die ORDER BY-Klausel wird verwendet, um die Sortierreihenfolge des Ergebnisses zu spezifizieren. Hier wollen wir das Ergebnis nach Kategorie und Titel bestellen:

for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title

Ergebnis:

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

Die Rückkehr-Klausel

Die Rückkehr-Klausel gibt an, welche zurückgegeben werden soll.

for $x in doc("books.xml")/bookstore/book
return $x/title

Ergebnis:

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