XPath Examples

Sa Seksyon na ito, titingnan natin ang mga pangunahing pangunahing pang-XPath sa pamamagitan ng mga halimbawa.

Mga Halimbawa ng XML

Aming pagsasalita sa mga sumusunod na halimbawa gamit ang dokumentong XML na ito:

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

Tingnan ang file na "books.xml" sa iyong browser.

Mag-load ng dokumentong XML

Lahat ng modernong browser ay sumusuporta sa paggamit ng XMLHttpRequest upang mag-load ng dokumentong XML.

Code para sa karamihan ng modernong browser:

var xmlhttp=new XMLHttpRequest()

Code para sa lumang Microsoft browser (IE 5 at 6):

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

Piliin ang bintana

Malungkot na, ang Internet Explorer at iba pang browser na nangangasiwa ng XPath ay magkakaiba sa paraan.

Sa aming halimbawa, kasama ang mga code na mayroon sa karamihan ng mga pangunahing browser.

Internet Explorer ay gumagamit ng method na selectNodes() upang piliin ang mga bintana mula sa dokumentong XML:

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera at Safari ay gumagamit ng method na evaluate() upang piliin ang mga bintana mula sa dokumentong XML:

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

Pinili ang lahat ng title

Ang halimbawa ng aming pagpipilian ay pinili ang lahat ng mga title na bintana:

/bookstore/book/title

Try It Yourself

Pinili ang title ng unang book

Ang mga halimbawa na ito ay pinili ang title ng unang book na nasa bookstore element:

/bookstore/book[1]/title

Try It Yourself

May isang problema dito. Ang mga halimbawa sa itaas ay nagbibigay ng iba't ibang resulta sa IE at ibang browser.

Ang mga bersyon ng IE5 at sa ibang bersyon ay tinitingnan ang [0] bilang unang node, habang ayon sa standard ng W3C, ito ay dapat na [1].

Para malutas ang problema sa [0] at [1] sa IE5+, maaaring itakda ang selection language (SelectionLanguage) para sa XPath.

Ang mga halimbawa na ito ay pinili ang title ng unang book na nasa bookstore element:

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

Try It Yourself

Pinili ang lahat ng price

Ang mga halimbawa na ito ay pinili ang lahat ng teksto sa price na may price na mas mataas sa 35:

/bookstore/book/price/text()

Try It Yourself

Pinili ang lahat ng price na may price na mas mataas sa 35

Ang mga halimbawa na ito ay pinili ang lahat ng price na may price na mas mataas sa 35:

/bookstore/book[price>35]/price

Try It Yourself

Pinili ang lahat ng title na may price na mas mataas sa 35

Ang mga halimbawa na ito ay pinili ang lahat ng title na may price na mas mataas sa 35:

/bookstore/book[price>35]/title

Try It Yourself