Syntax XPath

XPath menggunakan ekspresi jalur untuk memilih node atau kumpulan node di dalam dokumen XML. Node diselect melalui jalur (path) atau langkah (steps).

Dokumen Contoh XML

Kami akan menggunakan dokumen XML ini di 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>

Pilih node

XPath menggunakan ekspresi jalur untuk memilih node di dalam dokumen XML. Node diselect melalui jalur atau langkah (step).

Dibawah ini adalah daftar ekspresi jalur yang paling berguna:

Ekspresi Deskripsi
nodename Pilih semua node turunan dari node ini.
/ Pilih dari node root.
// Dari node yang diselect untuk mencari node di dokumen, tanpa mengira tempatnya.
. Pilih node saat ini.
.. Pilih node orangtua dari node saat ini.
@ Pilih atribut.

Contoh

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

Ekspresi jalur Hasil
bookstore Pilih semua node turunan elemen bookstore.
/bookstore

Pilih elemen root bookstore.

Keterangan: Jika jalur dimulai dengan garis miring atas (/), jalur ini selalu mewakili jalur absolut ke elemen tertentu!

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

Predikat (Predicates)

Predikat digunakan untuk mencari node tertentu atau node yang mengandung nilai yang ditentukan.

Predikat disematkan dalam tanda kurung siku.

Contoh

Dalam tabel di bawah, kami men列出了 beberapa ekspresi jalur dengan predikat serta hasilnya:

Ekspresi jalur Hasil
/bookstore/book[1] Memilih elemen book yang termasuk anak elemen bookstore pertama.
/bookstore/book[last()] Memilih elemen book yang termasuk anak elemen bookstore terakhir.
/bookstore/book[last()-1] Memilih elemen book yang termasuk anak elemen bookstore ke-2 terakhir.
/bookstore/book[position()<3] Memilih dua elemen pertama yang termasuk anak elemen bookstore.
//title[@lang] Memilih semua elemen title yang memiliki atribut bernama lang.
//title[@lang='eng'] Memilih semua elemen title yang memiliki atribut lang dengan nilai eng.
/bookstore/book[price>35.00] Memilih semua elemen book di dalam elemen bookstore, dan nilai atribut price harus lebih besar dari 35.00.
/bookstore/book[price>35.00]/title Memilih semua elemen title dari elemen book di dalam elemen bookstore, dan nilai atribut price harus lebih besar dari 35.00.

Memilih node tak dikenal

Wajah XPath dapat digunakan untuk memilih elemen XML yang tak dikenal.

Wajah Deskripsi
* Mempunyai cocokan untuk setiap node elemen.
@* Mempunyai cocokan untuk setiap node atribut.
node() Mempunyai cocokan untuk setiap jenis node.

Contoh

Dalam tabel di bawah, kami men列出了 beberapa ekspresi jalur serta hasilnya:

Ekspresi jalur Hasil
/bookstore/* Pilih semua anak elemen dari elemen bookstore.
//* Pilih semua elemen dalam dokumen.
//title[@*] Pilih semua elemen title yang memiliki atribut.

Pilih beberapa jalur

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

Contoh

Dalam tabel di bawah, kami men列出了 beberapa ekspresi jalur serta hasilnya:

Ekspresi jalur Hasil
//book/title | //book/price Pilih semua elemen title dan price dari elemen book.
//title | //price 选取文档中的所有 title 和 price 元素。
/bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。