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. |