XPath Voorbeelden
- Vorige pagina XPath Operator
- Volgende pagina Samenvatting XPath
In this section, let's learn some basic XPath syntax through examples.
XML example document
We will use this XML document in the following example:
"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 van XML-document
Alle moderne browsers ondersteunen de methode XMLHttpRequest om XML-documenten te laden.
Code voor de meeste moderne browsers:
var xmlhttp=new XMLHttpRequest()
Code voor oude Microsoft-browsers (IE 5 en 6):
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Selecteer knopen
Helaas behandelen Internet Explorer en andere browsers XPath op een andere manier.
In ons voorbeeld bevat de code voor de meeste gangbare browsers.
Internet Explorer gebruikt de methode selectNodes() om knopen uit een XML-document te selecteren:
xmlDoc.selectNodes(xpath);
Firefox, Chrome, Opera en Safari gebruiken de methode evaluate() om knopen uit een XML-document te selecteren:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null);
Selecteer alle title
Hier is een voorbeeld dat alle title-elementen selecteert:
/bookstore/book/title
Selecteer de title van het eerste book
De volgende voorbeelden selecteren de title van het eerste book-knooppunt onder de bookstore-elementen:
/bookstore/book[1]/title
Hier is een probleem. De voorbeelden bovenstaande geven verschillende resultaten in IE en andere browsers.
IE5 en hogere versies zien [0] als de eerste knoop, terwijl volgens de normen van de W3C dit [1] zou moeten zijn.
Om het probleem met [0] en [1] in IE5+ op te lossen, kan de taalkeuze (SelectionLanguage) voor XPath worden ingesteld.
De volgende voorbeelden selecteren de title van het eerste book-knooppunt onder de bookstore-elementen:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Selecteer alle prijzen
De volgende voorbeelden selecteren alle tekst in de price-knooppunten:
/bookstore/book/price/text()
Selecteer price-knooppunten met een prijs hoger dan 35
De volgende voorbeelden selecteren alle price-knooppunten met een prijs hoger dan 35:
/bookstore/book[price>35]/price
Selecteer title-knooppunten met een prijs hoger dan 35
De volgende voorbeelden selecteren alle title-knooppunten met een prijs hoger dan 35:
/bookstore/book[price>35]/title
- Vorige pagina XPath Operator
- Volgende pagina Samenvatting XPath