Axes ng XPath (Axis)

Mga halimbawa ng XML

Ginagamit namin ang dokumentong XML sa mga susunod na halimbawa:

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

XPath axis

Ang axis ay maaaring tukuyin ang kumpol ng bungkalan na kahalintulad sa kasalukuyang bungkalan.

Pangalan ng axis Resulta
ancestor Pumili ng lahat ng magulang (magulang, lolo, atbp.).
ancestor-or-self Pumili ng lahat ng magulang (magulang, lolo, atbp.) at ang bungkalan mismo.
attribute Piliin ang lahat ng attribute ng kasalukuyang buod.
child Piliin ang lahat ng anak na kina element ng kasalukuyang buod.
descendant Pumili ng lahat ng sangkap na may lahat ng bungkalan na mag-anak (anak, pamangkin, atbp.).
descendant-or-self Pumili ng lahat ng sangkap na may lahat ng bungkalan na mag-anak (anak, pamangkin, atbp.) at ang bungkalan mismo.
following Pumili ng lahat ng bungkalan pagkatapos ng tag na nakasalalay ng kasalukuyang bungkalan sa dokumento.
namespace Pumili ng lahat ng bungkalan na may pangalan ng namespace ng kasalukuyang bungkalan.
parent Pumili ng magulang na bungkalan ng kasalukuyang bungkalan.
preceding Pumili ng lahat ng bungkalan bago ang simula ng tag na nakasalalay ng kasalukuyang bungkalan sa dokumento.
preceding-sibling Pumili ng lahat ng magkakasamang bungkalan bago ang kasalukuyang bungkalan.
self Pumili ng kasalukuyang bungkalan.

Ekspresyon ng daan ng posisyon

Ang daan ng posisyon ay maaaring maging tamang daan o kahalintulad na daan.

Ang tamang daan ay nagsisimula sa may isang malawak na titik na nakasalunga ( / ), habang ang kahalintulad na daan ay hindi gayon. Sa parehong kaso, ang daan ng posisyon ay kasama ng isang o ilang hakbang, bawat hakbang ay hinahati ng isang titik na nakasalunga:

Absolute Positional Path:

/step/step/...

Relative Positional Path:

step/step/...

Bawat hakbang ay ibinabatay sa mga buod sa kasalukuyang set ng buod.

Hakbang (step) kasama ang:

Axis (axis)
Tukuyin ang kaugnayan ng puno ng buod na hinahalang at ang kasalukuyang buod
Node-test (node-test)
Identify ang mga buod sa loob ng isang axis
Wala o higit na maraming predicate (predicate)
Magiging mas mahusay ang pagpili ng set ng buod na hinahalang

Grammar ng hakbang:

Ngalan ng axis::node-test[predicate]

Halimbawa

Halimbawa Resulta
child::book Piliin ang lahat ng anak na kina book ng lahat ng anak na kina kasalukuyang buod.
attribute::lang Piliin ang attribute ng lang ng kasalukuyang buod.
child::* Piliin ang lahat ng anak na kina element ng kasalukuyang buod.
attribute::* Piliin ang lahat ng attribute ng kasalukuyang buod.
child::text() Piliin ang lahat ng anak na kina text ng kasalukuyang buod.
child::node() Piliin ang lahat ng anak na kina node ng kasalukuyang buod.
descendant::book Piliin ang lahat ng lahat ng lahat ng kina book ng kasalukuyang buod.
ancestor::book Piliin ang lahat ng magulang na kina book ng kasalukuyang buod.
ancestor-or-self::book Piliin ang lahat ng magulang na kina book ng kasalukuyang buod at ang kasalukuyang buod (kung ang kasalukuyang buod ay kina book)
child::*/child::price Piliin ang lahat ng anak na kina price ng kasalukuyang buod na kina.