Bekal Syntax XPath

XPath menggunakan ekspresi jalur untuk memilih node atau set node dalam dokumen XML. Node dapat dipilih melalui jalur (path) atau langkah (steps).

Dokumen contoh XML

Kami akan menggunakan dokumen XML ini dalam contoh di bawah.

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

Memilih node

XPath digunakan untuk memilih node dalam dokumen XML menggunakan ekspresi jalur. Node dapat dipilih melalui jalur atau langkah (step).

Berikut adalah ekspresi jalur yang paling berguna:

Ekspresi 佩西
nodename Pilih semua anak node dari node ini.
/ Dari root node.
// Dari node yang dipilih saat ini, pilih node dalam dokumen tanpa mengira tempatnya.
. Pilih node saat ini.
.. Pilih node orangtua dari node saat ini.
@ Pilih atribut.

Contoh

Dalam tabel di bawah, kami telah menampilkan beberapa ekspresi jalur dan hasil ekspresi tersebut:

Ekspresi Laluan Hasil
bookstore Pilih semua anak node elemen bookstore.
/bookstore

Pilih elemen root bookstore.

Keterangan: Jika jalur dimulai dengan garis miring atas (/), jalur itu selalu mewakili jalur absolut ke elemen.

bookstore/book Pilih semua elemen book yang termasuk anak elemen bookstore.
//book Pilih semua elemen book turunannya, tanpa mengira tempatnya di dokumen.
bookstore//book Pilih semua elemen book turunannya dalam elemen bookstore, tanpa mengira tempatnya di bawah bookstore.
//@lang Pilih semua atribut bernama lang.

Predikat (Predicates)

Predikat digunakan untuk mencari node khusus atau node yang mengandung nilai yang diinginkan.

Predikat disisihkan dalam tanda kurung

Contoh

Dalam tabel di bawah, kami menampilkan beberapa ekspresi jalur dengan predikat dan hasil ekspresi tersebut:

Ekspresi Laluan Hasil
/bookstore/book[1] Pilih elemen book pertama yang termasuk anak elemen bookstore.
/bookstore/book[last()] Pilih elemen book terakhir yang termasuk anak elemen bookstore.
/bookstore/book[last()-1] Pilih elemen book kedua terakhir yang termasuk anak elemen bookstore.
/bookstore/book[position()<3] Pilih dua elemen book pertama yang termasuk anak elemen bookstore.
//title[@lang] Pilih semua elemen title yang memiliki atribut bernama lang.
//title[@lang='eng'] Pilih semua elemen title yang memiliki atribut lang bernilai eng.
/bookstore/book[price>35.00] Pilih semua elemen book dalam elemen bookstore, dan nilai elemen price harus lebih besar daripada 35.00.
/bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

选取未知节点

XPath 通配符可用来选取未知的 XML 元素。

佩西 佩西
* 佩西任何元素节点。
@* 佩西任何属性节点。
node() 佩西任何类型的节点。

Contoh

Dalam tabel di bawah, kami daftar beberapa ekspresi laluan dan hasil ekspresi ini:

Ekspresi Laluan Hasil
/bookstore/* Pilih semua anak elemen elemen bookstore.
//* Pilih semua elemen di dokumen.
//title[@*] Pilih semua elemen title dengan atribut.

Pilih beberapa laluan

Dengan menggunakan operator "|" dalam ekspresi laluan, Anda dapat memilih beberapa laluan.

Contoh

Dalam tabel di bawah, kami daftar beberapa ekspresi laluan dan hasil ekspresi ini:

Ekspresi Laluan Hasil
//book/title | //book/price Pilih semua elemen title dan price elemen book.
//title | //price Pilih semua elemen title dan price di dokumen.
/bookstore/book/title | //price Pilih semua elemen title yang milik elemen bookstore, serta semua elemen price di dokumen.