XPath-Beispiel
- Vorherige Seite XPath-Operatoren
- Nächste Seite Kurzübersicht über XPath
In diesem Abschnitt lernen wir durch Beispiele einige grundlegende XPath-Syntax.
XML-Beispiel-Dokument
Wir werden im folgenden Beispiel diesen XML-Dokument verwenden:
"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>
Laden von XML-Dokumenten
Alle modernen Browser unterstützen die Methode XMLHttpRequest, um XML-Dokumente zu laden.
Code für die meisten modernen Browser:
var xmlhttp=new XMLHttpRequest()
Code für alte Microsoft-Browser (IE 5 und 6):
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Wählt Knoten
Leider behandeln Internet Explorer und andere Browser XPath unterschiedlich.
In unserem Beispiel enthält der Code für die meisten gängigen Browser.
Internet Explorer verwendet die Methode selectNodes() zur Auswahl von Knoten aus XML-Dokumenten:
xmlDoc.selectNodes(xpath);
Firefox, Chrome, Opera und Safari verwenden die Methode evaluate() zur Auswahl von Knoten aus XML-Dokumenten:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null);
Wählt alle title
Der folgende Beispiel wählt alle title-Knoten aus:
/bookstore/book/title
Wählen Sie den title des ersten book
Der folgende Beispiel wählt den title des ersten book-Knotens unter dem bookstore-Element aus:
/bookstore/book[1]/title
Hier ist ein Problem. Der obige Beispiel gibt in IE und anderen Browsern unterschiedliche Ergebnisse aus.
Versionen von IE5 und höher betrachten [0] als ersten Knoten, während nach den Standards der W3C [1] sein sollte.
Um das Problem mit [0] und [1] in IE5+ zu lösen, kann die Sprache für XPath (SelectionLanguage) eingestellt werden.
Der folgende Beispiel wählt den title des ersten book-Knotens unter dem bookstore-Element aus:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Wählen Sie alle Preise aus
Der folgende Beispiel wählt alle Texte aus den price-Knoten aus:
/bookstore/book/price/text()
Wählen Sie price-Knoten mit einem Preis höher als 35 aus
Der folgende Beispiel wählt alle price-Knoten aus, deren Preis höher als 35 ist:
/bookstore/book[price>35]/price
Wählen Sie title-Knoten mit einem Preis höher als 35 aus
Der folgende Beispiel wählt alle title-Knoten aus, deren Preis höher als 35 ist:
/bookstore/book[price>35]/title
- Vorherige Seite XPath-Operatoren
- Nächste Seite Kurzübersicht über XPath