XPath Beispiele


In diesem Abschnitt lernen wir anhand von Beispielen einige grundlegende XPath-Syntax kennen.


XML-Beispieldokument

Wir werden dieses XML-Dokument in den folgenden Beispielen verwenden:

"books.xml":

<?xml version="1.0" encoding="UTF-8"?>

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

。


XML-Dokument laden

Alle modernen Browser unterstützen die Methode, XMLHttpRequest zum Laden von XML-Dokumenten zu verwenden.

Code für die meisten modernen Browser:

var xmlhttp=new XMLHttpRequest()

Code für ältere Microsoft-Browser (IE 5 und 6):

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")


Knoten auswählen

Leider behandelt Internet Explorer XPath anders als andere.

In unseren Beispielen fügen wir Code ein, der für die meisten gängigen Browser funktioniert.

Internet Explorer verwendet die selectNodes()-Methode, um Knoten aus einem XML-Dokument auszuwählen:

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera und Safari verwenden die evaluate()-Methode, um Knoten aus einem XML-Dokument auszuwählen:

xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);


Titel „Alle auswählen“

Das folgende Beispiel wählt alle title-Knoten aus:

Beispiel

/bookstore/book/title

Selbst ausprobieren »


Wählen Sie den Titel des ersten Buches aus

Das folgende Beispiel wählt den Titel des ersten book-Knotens unter dem bookstore-Element aus:

Beispiel

/bookstore/book[1]/title

Selbst ausprobieren »

Hier gibt es ein Problem. Das obige Beispiel liefert in IE und anderen Browsern unterschiedliche Ergebnisse.

IE5 und spätere Versionen behandeln

Ein Workaround!

Um das Problem zu lösen

Das folgende Beispiel wählt den Titel des ersten book-Knotens unter dem bookstore-Element aus:

Beispiel

xml.setProperty("SelectionLanguage","XPath");
xml.selectNodes("/bookstore/book[1]/title");

Selbst ausprobieren »


Alle Preise auswählen

Das folgende Beispiel wählt den gesamten Text in den price-Knoten aus:

Beispiel

/bookstore/book/price/text()

Selbst ausprobieren »


Wählen Sie price-Knoten mit einem Preis größer als 35 aus

Das folgende Beispiel wählt alle price-Knoten mit einem Preis größer als 35 aus:

Beispiel

/bookstore/book[price>35]/price

Selbst ausprobieren »


Wählen Sie title-Knoten mit einem Preis größer als 35 aus

Das folgende Beispiel wählt alle title-Knoten mit einem Preis größer als 35 aus:

Beispiel

/bookstore/book[price>35]/title

Selbst ausprobieren »
Andere Erweiterungen