XQuery-Beispiel

In diesem Abschnitt lernen wir durch die Untersuchung eines Beispiels einige grundlegende XQuery-Syntax.

XML-Beispiel-Dokument

Wir verwenden diesen XML-Dokument in den folgenden Beispielen.

"books.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>
<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>
</bookstore>

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

Wie wählt man Knoten aus "books.xml" aus?

Funktion

XQuery nutzt Funktionen, um Daten im XML-Dokument zu extrahieren.

doc() wird verwendet, um die Datei "books.xml" zu öffnen:

doc("books.xml")

Pfadausdruck

XQuery nutzt Pfadausdrücke, um im XML-Dokument durch Elemente zu navigieren.

Nachfolgende Pfadausdrücke werden verwendet, um alle "title"-Elemente im "books.xml"-Datei zu wählen:

doc("books.xml")/bookstore/book/title

Wählen Sie das Element "bookstore" aus (/bookstore wählt das Element "bookstore" aus, /book wählt alle "book"-Elemente im "bookstore"-Element aus, und /title wählt alle "title"-Elemente in den "book"-Elementen aus)

Der obige XQuery kann folgende Daten extrahieren:

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

Prädikat

XQuery verwendet Prädikate, um die aus einem XML-Dokument extrahierten Daten zu begrenzen.

Die folgenden Prädikate werden verwendet, um alle book-Elemente unter dem bookstore-Element auszuwählen und sicherzustellen, dass der Wert des price-Elements dieser book-Elemente kleiner als 30 ist:

doc("books.xml")/bookstore/book[price<30]

Der obige XQuery kann folgende Daten extrahieren:

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>