XPath esimerkki
- Edellinen sivu XPath laskin
- Seuraava sivu XSLT esittely
Tässä luvussa käsittelemme perus XPath-kielioppia esimerkin avulla.
XML-esimerkki
Me käytämme alla olevaa esimerkkiä tässä XML-dokumentissa:
"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>
Ladataan XML-dokumentti
Kaikki nykyaikaiset selaimet tukevat XMLHttpRequest-menetelmää XML-dokumenttien lataamiseen.
Useimpien nykyaikaisten selainten koodi:
var xmlhttp=new XMLHttpRequest()
Vanhojen Microsoft-selainten (IE 5 ja 6) koodi:
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Valitaan solmu
Valitettavasti Internet Explorer ja muut XPath:n käsittelyssään erilaiset selaimet.
Esimerkissämme on koodi, joka on yhteensopiva useimpien suosittujen selaimien kanssa.
Internet Explorer käyttää selectNodes()-menetelmää XML-dokumentista solmujen valintaan:
xmlDoc.selectNodes(xpath);
Firefox, Chrome, Opera ja Safari käyttävät evaluate()-menetelmää XML-dokumentista solmujen valintaan:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null);
Valitaan kaikki title
Seuraavassa esimerkissä valitaan kaikki title-solmut:
/bookstore/book/title
Valitaan ensimmäisen book-solmun title
Seuraavassa esimerkissä valitaan bookstore-elementin ensimmäisen book-solmun title:
/bookstore/book[1]/title
Tässä on ongelma. Yllä oleva esimerkki tuottaa erilaisia tuloksia IE:ssä ja muissa selaimissa.
IE5 ja uudet versiot näkevät [0] ensimmäisen solmun, kun taas W3C:n standardin mukaan sen tulisi olla [1].
Oikeanlaiseksi ratkaistakseen IE5+ [0] ja [1] ongelmia, voidaan asettaa XPath-kielen valinta (SelectionLanguage).
Seuraavassa esimerkissä valitaan bookstore-elementin ensimmäisen book-solmun title:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Valitaan kaikki hinnat
Seuraavassa esimerkissä valitaan kaikki text() price solmut:
/bookstore/book/price/text()
Valitaan hinta yli 35:n price solmu
Seuraava esimerkki valitsee kaikki price>35 olevat price-elementit:
/bookstore/book[price>35]/price
Valitaan price>35 olevat title-elementit
Seuraava esimerkki valitsee kaikki price>35 olevat title-elementit:
/bookstore/book[price>35]/title
- Edellinen sivu XPath laskin
- Seuraava sivu XSLT esittely