Contoh XPath

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

Dokumen XML Instansiasi

Kami akan menggunakan dokumen XML berikut dalam 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")

Memilih node

Sayangnya, Internet Explorer dan yang lainnya mengelola XPath dengan cara yang berbeda.

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

Internet Explorer menggunakan metode selectNodes() untuk memilih node dari dokumen XML:

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera, dan Safari menggunakan metode evaluate() untuk memilih node dari dokumen XML:

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

Pilih semua title

Contoh di bawah ini memilih semua node title:

/bookstore/book/title

亲自试一试

Pilih title pertama book

Contoh di bawah ini memilih title node pertama di bawah element bookstore:

/bookstore/book[1]/title

亲自试一试

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

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

Untuk memperbaiki masalah [0] dan [1] di IE5+, dapat diset untuk pilihan bahasa (SelectionLanguage) XPath.

Contoh di bawah ini memilih title node pertama di bawah element bookstore:

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

亲自试一试

Pilih semua harga

Contoh di bawah ini memilih semua teks node price:

/bookstore/book/price/text()

亲自试一试

Pilih node price dengan harga yang lebih tinggi daripada 35

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

/bookstore/book[price>35]/price

亲自试一试

选取价格高于 35 的 title 节点

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

/bookstore/book[price>35]/title

亲自试一试