Axes (Aks) XPath

Dokumen contoh XML

Kami akan menggunakan dokumen XML berikut dalam contoh kami:

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

Sumbu XPath

Sumbu dapat mendefinisikan kumpulan node yang berada di sebelah node saat ini.

Nama sumbu Hasil
ancestor Pilih semua leluhur (parent, kakek, dll).
ancestor-or-self Pilih semua leluhur (parent, kakek, dll) serta node saat ini sendiri.
attribute Pilih semua atribut dari node saat ini
child Pilih semua elemen anak dari node saat ini
descendant Pilih semua elemen turun node (anak, cucu, dll).
descendant-or-self Pilih semua elemen turun node (anak, cucu, dll) serta node saat ini sendiri.
following Pilih semua node setelah tag akhir node saat ini di dokumen.
namespace Pilih semua node namespace di node saat ini.
parent Pilih parent node saat ini.
preceding Pilih semua node sebelum tag awal node saat ini di dokumen.
preceding-sibling Pilih semua node同级 sebelum node saat ini.
self Pilih node saat ini.

Ekspresi path posisi

Path posisi dapat absolut atau relatif.

Path absolut dimulai dengan garis miring yang berdiri ( / ) dan path relatif tidak seperti itu. Dalam kedua kasus, path posisi termasuk satu atau lebih tahapan, setiap tahapan dipisahkan dengan garis miring:

Jalur Lokasi Absolut:

/step/step/...

Jalur Lokasi Relatif:

step/step/...

Setiap langkah dihitung berdasarkan node dalam kumpulan node saat ini

Langkah (Step) termasuk:

Aks (Axis)
Mendefinisikan hubungan pohon antara node yang dipilih dan node saat ini
Test Node (Node-test)
Mengidentifikasi node di dalam sebuah aks
Nol atau lebih banyak predikat (predicate)
Purbaikan yang lebih mendalam dari kumpulan node yang dipilih

Syarat Grammar:

Nama Aks (Axis) :: Test Node [Predikat]

Contoh

Contoh Hasil
child::book Pilih semua node book yang termasuk dalam anak dari node saat ini
attribute::lang Pilih atribut lang dari node saat ini
child::* Pilih semua elemen anak dari node saat ini
attribute::* Pilih semua atribut dari node saat ini
child::text() Pilih semua node teks anak dari node saat ini
child::node() Pilih semua node anak dari node saat ini
descendant::book Pilih semua turunan book dari node saat ini
ancestor::book Pilih semua pendahulu book dari node saat ini
ancestor-or-self::book Pilih semua pendahulu book dari node saat ini serta node saat ini (jika node ini adalah node book)
child::*/child::price Pilih semua node putar price dari node saat ini.