Contoh XPath

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

Dokumen XML Instansi

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.

Memuat 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 beberapa penanganan XPath lainnya 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 serta Safari menggunakan metode evaluate() untuk memilih node dari dokumen XML:

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

Memilih semua title

Contoh di bawah ini memilih semua node title:

/bookstore/book/title

Coba Sendiri

Memilih title pertama book

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

/bookstore/book[1]/title

Coba Sendiri

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

Versi IE5 dan yang lebih tinggi menganggap [0] sebagai node pertama, sementara menurut standar W3C, seharusnya [1].

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

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

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

Coba Sendiri

Memilih semua harga

Contoh di bawah ini memilih semua teks dalam node price:

/bookstore/book/price/text()

Coba Sendiri

Memilih node price dengan harga di atas 35

Contoh di bawah ini memilih semua node price dengan harga di atas 35:

/bookstore/book[price>35]/price

Coba Sendiri

Memilih node title dengan harga di atas 35

Contoh di bawah ini memilih semua node title dengan harga di atas 35:

/bookstore/book[price>35]/title

Coba Sendiri