XQuery Beispiele


In diesem Abschnitt lernen wir anhand eines Beispiels einige grundlegende XQuery-Syntax kennen.


XML-Beispieldokument

Wir werden dieses XML-Dokument im folgenden Beispiel verwenden.

"books.xml":

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book category="COOKING">
  Everyday Italian
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

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

<book category="WEB">
  XQuery Kick Start
  <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">
  Learning XML
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>

。


Wie werden Knoten aus "books.xml" ausgewählt?

Funktionen

XQuery verwendet Funktionen, um Daten aus XML-Dokumenten zu extrahieren.

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

doc("books.xml")

Pfadausdrücke

XQuery verwendet Pfadausdrücke, um durch Elemente in einem XML-Dokument zu navigieren.

Der folgende Pfadausdruck wird verwendet, um alle title-Elemente in der Datei "books.xml" auszuwählen:

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

(/bookstore wählt das bookstore-Element aus, /book wählt alle book-Elemente unter dem bookstore-Element aus und /title wählt alle title-Elemente unter jedem book-Element aus)

Das obige XQuery kann die folgenden Daten extrahieren:

Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML

Prädikate

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

Das folgende Prädikat wird verwendet, um alle book-Elemente unter dem bookstore-Element auszuwählen, und der Wert des price-Elements unter dem ausgewählten book-Element muss kleiner als 30 sein:

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

Das obige XQuery kann die folgenden Daten extrahieren:

<book category="CHILDREN">
  Harry Potter
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
Andere Erweiterungen