XPath Eksenleri (Axes)

XML Örnek Belgesi

Aşağıdaki örneklerde bu XML belgesini kullanacağız:

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

Aks, geçerli düğümüne göre bir düğüm kümesi tanımlayabilir.

Aks ismi Sonuç
ancestor Geçerli düğümün tüm atalarını (ebeveyn, büyükbaba vb.) seçin.
ancestor-or-self Geçerli düğümün tüm atalarını (ebeveyn, büyükbaba vb.) ve kendisini seçin.
attribute Mevcut düğümün tüm özelliklerini seçin。
child Mevcut düğümün tüm alt elementlerini seçin。
descendant Geçerli düğümün tüm soy elementlerini (çocuk, torun vb.) seçin.
descendant-or-self Geçerli düğümün tüm soy elementlerini (çocuk, torun vb.) ve kendisini seçin.
following Geçerli düğümün bitiş etiketinden sonraki tüm düğümleri seçin.
namespace Geçerli düğümün tüm adlandırma alanı düğümlerini seçin.
parent Geçerli düğümün ebeveyn düğümünü seçin.
preceding Geçerli düğümün başlangıç etiketinden önceki tüm düğümleri seçin.
preceding-sibling Geçerli düğümün önceki tüm aynı düzeydeki düğümleri seçin.
self Geçerli düğümü seçin.

Konum yolu ifadesi

Konum yolu mutlak veya göreceli olabilir.

Mutlak yolun başlangıcı sağ eğik çizgi ( / ) ile başlar ve göreceli yol böyle değildir. İki durumda da, konum yolu bir veya daha fazla adı içerir ve her ad slash ile ayrılır:

Mutlak Konum Yolu:

/step/step/...

Relatif Konum Yolu:

step/step/...

Her adım, mevcut düğüm kümesindeki düğümlere göre hesaplanır.

Adım (step) içerir:

Eksen (axis)
Seçilen düğümle mevcut düğüm arasındaki ağaç ilişkisini tanımlamak
Düğüm Testi (node-test)
Bir eksen içindeki düğümleri tanımlamak
Sıfır veya daha fazla ifade (predicate)
Seçilen düğüm kümesinin daha derinlemesine işlenmesi

Adım Grameri:

Eksen Adı::Düğüm Testi[İfade]

Örnek

Örnek Sonuç
child::book Mevcut düğümün tüm alt elementlerine ait book düğümleri seçin。
attribute::lang Mevcut düğümün lang özelliğini seçin。
child::* Mevcut düğümün tüm alt elementlerini seçin。
attribute::* Mevcut düğümün tüm özelliklerini seçin。
child::text() Mevcut düğümün tüm metin alt düğümlerini seçin。
child::node() Mevcut düğümün tüm alt düğümlerini seçin。
descendant::book Mevcut düğümün tüm book soy ağacı seçin。
ancestor::book Mevcut düğümün tüm book atasını seçin。
ancestor-or-self::book Mevcut düğümün tüm book atası ve mevcut düğüm (eğer bu düğüm book düğümse)
child::*/child::price Mevcut düğümün tüm price alt düğümlerini seçin。