XPath eksempler

I denne sektion vil vi lære nogle grundlæggende XPath syntak gennem eksempler.

XML eksempel dokument

Vi vil bruge dette XML-dokument i nedenstående eksempel:

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

Se "books.xml" filen i din browser.

Indlæs XML-dokument

Alle moderne browsere understøtter metoden XMLHttpRequest til at indlæse XML-dokumenter.

Kode til de fleste moderne browsere:

var xmlhttp=new XMLHttpRequest()

Kode til gamle Microsoft-browsere (IE 5 og 6):

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

Vælg noder

Desværre behandler Internet Explorer og andre XPath-behandlere på en anden måde.

I vores eksempel indeholder kode, der er kompatibel med de fleste主流浏览器的.

Internet Explorer bruger selectNodes() metoden til at vælge noder fra XML-dokumenter:

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera og Safari bruger evaluate() metoden til at vælge noder fra XML-dokumenter:

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

Vælg alle title

Nedenstående eksempel vælger alle title-noder:

/bookstore/book/title

Prøv det selv

Vælg title for den første book

Følgende eksempel vælger title for den første book-nyde i bookstore-elementet:

/bookstore/book[1]/title

Prøv det selv

Her er et problem. Følgende eksempel viser forskellige resultater i IE og andre browsere.

IE5 og højere versioner ser [0] som den første node, mens W3C's standard siger, at det skal være [1].

For at løse problemet med [0] og [1] i IE5+, kan du indstille sprogvalg (SelectionLanguage) for XPath.

Følgende eksempel vælger title for den første book-nyde i bookstore-elementet:

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

Prøv det selv

Vælg alle priser

Følgende eksempel vælger al tekst i price-noderne:

/bookstore/book/price/text()

Prøv det selv

Vælg price-noder med en pris over 35

Følgende eksempel vælger alle price-noder med en pris over 35:

/bookstore/book[price>35]/price

Prøv det selv

Vælg title-noder med en pris over 35

Følgende eksempel vælger alle title-noder med en pris over 35:

/bookstore/book[price>35]/title

Prøv det selv