Contoh XPath

Dalam bagian ini, kita akan belajar beberapa sintaksis dasar XPath melalui contoh.

Dokumen XML Contoh

Kami akan menggunakan dokumen XML berikut untuk contoh:

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

Lihat berkas "books.xml" ini di browser anda.

Muat dokumen XML

Semua browser modern mendukung metode XMLHttpRequest untuk memuat dokumen XML.

Kode untuk sebagian besar browser modern:

var xmlhttp=new XMLHttpRequest()

Kode untuk browser Microsoft kuno (IE 5 dan 6):

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

Pilih noden

Sayangnya, Internet Explorer dan cara lain yang mengolah XPath berbeda.

Dalam contoh kami, termasuk kode yang berlaku untuk sebagian besar browser populer.

Internet Explorer menggunakan metode selectNodes() untuk memilih noden dalam dokumen XML:

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera serta Safari menggunakan metode evaluate() untuk memilih noden dalam dokumen XML:

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

Pilih semua title

Contoh di bawah ini memilih semua noden title:

/bookstore/book/title

亲自试一试

Pilih title pertama book

Contoh di bawah ini memilih title noden pertama di bawah elemen bookstore:

/bookstore/book[1]/title

亲自试一试

Ada masalah di sini. Contoh di atas mengeluarkan hasil yang berbeda di IE dan browser lain.

IE5 serta versi yang lebih tinggi menganggap [0] sebagai noden pertama, sementara menurut standar W3C, seharusnya [1].

Untuk memecahkan masalah [0] dan [1] di IE5+, boleh tetapkan pilihan bahasa untuk XPath (SelectionLanguage).

Contoh di bawah ini memilih title noden pertama di bawah elemen bookstore:

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

亲自试一试

Pilih semua harga

Contoh di bawah ini memilih semua teks dalam noden price:

/bookstore/book/price/text()

亲自试一试

Pilih noden price yang harga lebih tinggi daripada 35

下面的例子选取价格高于 35 的所有 price 节点:

/bookstore/book[price>35]/price

亲自试一试

选取价格高于 35 的 title 节点

下面的例子选取价格高于 35 的所有 title 节点:

/bookstore/book[price>35]/title

亲自试一试