Peraturan Gramma XPath

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

Dokumen Instan 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>

Pilih node

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

Di bawah ini adalah beberapa ekspresi jalur yang paling berguna:

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

Contoh

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

Ekspresi jalur Hasil
bookstore Pilih semua anak node 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 anak elemen bookstore.
//book Pilih semua elemen book anak, tanpa mengira tempatnya di dokumen.
bookstore//book Pilih semua elemen book yang terletak di bawah elemen bookstore, tanpa mengira tempatnya di bawah bookstore.
//@lang Pilih semua sifat yang dinamakan lang.

Predikat (Predicates)

Predikat digunakan untuk mencari nod khusus atau nod yang mengandungi nilai yang ditentukan.

Predikat disematkan di dalam kurung buka dan kurung tutup.

Contoh

Dalam jadwal di bawah, kami menarik beberapa ekspresi jalur dengan predikat serta hasilnya:

Ekspresi jalur Hasil
/bookstore/book[1] Pilih elemen book yang termasuk anak elemen bookstore yang pertama.
/bookstore/book[last()] Pilih elemen book yang termasuk anak elemen bookstore yang terakhir.
/bookstore/book[last()-1] Pilih elemen book yang termasuk anak elemen bookstore yang kedua terakhir.
/bookstore/book[position()<3] Pilih dua elemen pertama yang termasuk anak elemen bookstore.
//title[@lang] Pilih semua elemen title yang mempunyai sifat lang.
//title[@lang='eng'] Pilih semua elemen title yang mempunyai sifat lang dengan nilai eng.
/bookstore/book[price>35.00] Pilih semua elemen book daripada elemen bookstore, di mana nilai elemen price melebihi 35.00.
/bookstore/book[price>35.00]/title Pilih semua elemen title daripada elemen book dalam elemen bookstore, di mana nilai elemen price melebihi 35.00.

Pilih nod tak diketahui

Simbol XPath boleh digunakan untuk memilih elemen XML yang tak diketahui.

Simbol wajib Penerangan
* Padan kepada nod elemen anya.
@* Padan kepada nod sifat anya.
node() Padan kepada jenis nod anya.

Contoh

Dalam jadwal di bawah, kami menarik beberapa ekspresi jalur serta hasilnya:

Ekspresi jalur Hasil
/bookstore/* Pilih semua anak elemen daripada elemen bookstore.
//* Pilih semua elemen dalam dokumen.
//title[@*] Pilih semua elemen title yang mempunyai sifat.

Pilih beberapa jalur

Dengan menggunakan operator "|" dalam ekspresi jalur, anda boleh memilih beberapa jalur.

Contoh

Dalam jadwal di bawah, kami menarik beberapa ekspresi jalur serta hasilnya:

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