Eksyen XPath (Axen)
Dokumen Contoh XML
Kami akan menggunakan dokumen XML berikut untuk contoh:
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore><title lang="eng">Harry Potter</title> <price>29.99</price> </book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
XPath sumbu
Sumbu dapat didefinisikan hubungan set noden yang berada di atas node sekarang. | Hasil |
---|---|
Nama sumbu | ancestor |
Pilih semua kerabat dari node sekarang. | ancestor-or-self |
Pilih semua kerabat dari node sekarang serta node sekarang sendiri. | Pilih semua atribut dari node sekarang. |
attribute | Pilih semua anak elemen dari node sekarang. |
child | descendant |
Pilih semua anak turun-temurun dari node sekarang. | descendant-or-self |
Pilih semua anak turun-temurun dari node sekarang serta node sekarang sendiri. | following |
Pilih semua noden setelah tag akhir node sekarang di dokumen. | namespace |
Pilih semua noden namespace dari node sekarang. | parent |
Pilih noden orangtua node sekarang. | preceding |
Pilih semua noden sebelum tag mulai node sekarang di dokumen. | preceding-sibling |
Pilih semua noden saudara sebelum node sekarang. | self |
Pilih noden sekarang.
Ekspresi jalur posisi
Jalur posisi dapat absolute atau relatif.
Jalur posisi absolut dimulai dengan garis miring ( / ), sementara jalur posisi relatif tidak seperti itu. Dalam kedua kasus, jalur posisi termasuk satu atau lebih langkah, setiap langkah dipisahkan dengan garis miring:
/step/step/...
Jalur posisi relatif:
step/step/...
Setiap langkah dihitung berdasarkan noden dalam set noden sekarang
Langkah (step) termasuk:
- Sumbu (axis)
- Mendefinikan hubungan pohon antara noden yang dipilih dan noden sekarang
- Tes noden (node-test)
- Mengidentifikasi noden dalam sumbu yang berbeda
- Nol atau lebih penyata (predicate)
- Mengembangkan lebih mendalam set noden yang dipilih
Syarat kalimat langkah:
Nama sumbu::tes noden[penyata]
Contoh
Contoh | Hasil |
---|---|
child::book | Pilih semua node book yang milik anak dari node sekarang. |
attribute::lang | Pilih atribut lang dari node sekarang. |
child::* | Pilih semua anak elemen dari node sekarang. |
attribute::* | Pilih semua atribut dari node sekarang. |
child::text() | Pilih semua anak teks dari node sekarang. |
child::node() | Pilih semua anak noden dari node sekarang. |
descendant::book | 选取当前节点的所有 book 后代。 |
ancestor::book | 选择当前节点的所有 book 先辈。 |
ancestor-or-self::book | 选取当前节点的所有 book 先辈以及当前节点(如果此节点是 book 节点) |
child::*/child::price | 选取当前节点的所有 price 孙节点。 |