Syarat XPath

XPath menggunakan ekspresi jalur untuk memilih node atau kumpulan node dalam dokumen XML. Node dapat dipilih 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="ind">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="ind">Pemelajaran 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 Deskripsi
nodename Pilih semua anak node dari node ini.
/ Dari root node pilih.
// Dari node yang dipilih saat ini, pilih node di dalam dokumen tanpa memperhatikan posisinya.
. Pilih node saat ini.
.. Pilih node orangtua dari node saat ini.
@ Pilih atribut.

Contoh

Di tabel di bawah ini, kami telah menampilkan beberapa ekspresi jalur serta hasil ekspresi tersebut:

Ekspresi Jalur Hasil
bookstore Pilih semua node anak dari elemen bookstore.
/bookstore

Pilih elemen root bookstore.

Keterangan: Jika jalur dimulai dengan garis miring atas (/), jalur tersebut selalu mewakili jalur absolut ke elemen yang ditentukan!

bookstore/book Pilih semua elemen book yang merupakan anak dari elemen bookstore.
//book Pilih semua elemen book turunan, tanpa memperhatikan posisinya di dalam dokumen.
bookstore//book Pilih semua elemen book turunan dari elemen bookstore, tanpa memperhatikan posisinya di bawah bookstore.
//@lang Pilih semua atribut dengan nama lang.

Predikat (Predicates)

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

Predikat disisihkan di dalam kurung kurawal.

Contoh

Di tabel di bawah ini, kami menampilkan beberapa ekspresi jalur dengan predikatnya serta hasil ekspresi tersebut:

Ekspresi Jalur Hasil
/bookstore/book[1] Pilih elemen book yang berada di posisi pertama di bawah anak elemen bookstore.
/bookstore/book[last()] Pilih elemen book yang berada di posisi terakhir di bawah anak elemen bookstore.
/bookstore/book[last()-1] Pilih elemen book yang berada di posisi terakhir kedua di bawah anak elemen bookstore.
/bookstore/book[position()<3] Pilih dua elemen book pertama yang merupakan anak dari 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 dari 35.00.
/bookstore/book[price>35.00]/title Pilih semua elemen title dari elemen book di dalam elemen bookstore, dan nilai elemen price harus lebih besar dari 35.00.

Pilih Node Tak Dikenal

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

Simbol Deskripsi
* Mencocokkan node elemen apapun.
@* Mencocokkan node atribut apapun.
node() Mencocokkan jenis node apapun.

Contoh

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

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

Pilih Jalur Beberapa

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

Contoh

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

Ekspresi Jalur Hasil
//book/title | //book/price Pilih semua elemen title dan price dari elemen book.
//title | //price Pilih semua elemen title dan price di dokumen.
/bookstore/book/title | //price Pilih semua elemen title yang milik elemen bookstore dan semua elemen price di dokumen.