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":
<bookstore>
<book category="COOKING">
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<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">
<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:
Code für ältere Microsoft-Browser (IE 5 und 6):
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:
Firefox, Chrome, Opera und Safari verwenden die evaluate()-Methode, um Knoten aus einem XML-Dokument auszuwählen:
Titel „Alle auswählen“
Das folgende Beispiel wählt alle title-Knoten aus:
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:
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.selectNodes("/bookstore/book[1]/title");
Selbst ausprobieren »
Alle Preise auswählen
Das folgende Beispiel wählt den gesamten Text in den price-Knoten aus:
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:
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:
Andere Erweiterungen