Latest web development tutorials

XQuery Auswählen und Filtern

XML-Instanz-Dokumente

Im folgenden Beispiel werden wir diese "books.xml" (gleiche XML-Datei und den Abschnitt oben verwendet wird) zu verwenden Dokument.

Siehe "books.xml" Datei in Ihrem Browser .


Wählen und Filterelemente

Wie im vorigen Kapitel gesehen, verwenden wir den Ausdruck FLWOR oder einen Pfadausdruck auszuwählen und Filterelemente.

Betrachten Sie die folgende FLWOR Ausdruck:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • für - (optional) zu jeder der gebündelten Gegenstände durch die Expression in einer Variablen zurück
  • lassen - (optional)
  • wo - (optional) gesetzt eine Bedingung
  • Um durch - (optional) die Reihenfolge der Ergebnisse
  • Rückkehr - die Bestimmungen in den Ergebnissen zurückgegeben Inhalt

für Aussage

Anweisung für die Variable jedes Element gebunden durch die in Ausdruck zurückgegeben. für Anweisung Iteration. Es kann für die gleiche Anweisung in einem FLWOR Ausdruck mehrfach sein.

Für eine bestimmte Anzahl von Malen in einer for-Anweisung in einer Schleife, können Sie Schlüsselwörter verwenden, um:

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

Ergebnisse:

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

Schlüsselwörter können die Iteration berechnet werden bei:

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

Ergebnisse:

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

In der Erklärung ermöglicht auch mehr als ein Ausdruck. Bitte verwenden Sie ein Komma jeweils in Ausdruck zu trennen:

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

Ergebnisse:

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

lassen Aussage

lassen Anweisung vollständige Verteilung variabel sein können, und vermeiden Sie den gleichen Ausdruck wiederholt. lassen Anweisung verursachen Iteration nicht.

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

Ergebnisse:

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

wo Aussagen

wo Anweisung wird verwendet, um das Ergebnis eines oder mehrerer Bedingungen (Kriterien) einzustellen.

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

Um nach Aussage

Um durch Anweisung, um die Ergebnisse einer vorbestimmten Reihenfolge zu sortieren. Hier wollen wir die Ergebnisse nach Kategorie und Titel zu sortieren:

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

Ergebnisse:

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

return-Anweisung gibt den Inhalt zurück.

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

Ergebnisse:

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