XPath Grameri

XPath, XML belgesindeki düğümleri veya düğüm kümelerini seçmek için yol ifadeleri kullanır. Düğüm, yol (path) veya adım (steps) üzerinden seçilir.

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>

Düğüm seçme

XPath, XML belgelerinde düğüm seçmek için yol ifadesi kullanır. Düğüm, yol veya adım üzerinden seçilir.

En kullanışlı yol ifadeleri aşağıda listelenmiştir:

İfade Tanım
nodename Bu düğümün tüm alt nodelerini seçin.
/ Kök düğümü seçin.
// Geçerli seçim yapılan düğümdeki tüm nodeleri seçin, nerede olduklarına bakılmaksızın.
. Geçerli düğümü seçin.
.. Geçerli düğümün ebeveyn düğümünü seçin.
@ Özellik seçin.

Örnek

Aşağıdaki tabloda, bazı yol ifadeleri ve bu ifadelerin sonuçları listelenmiştir:

Yol İfade Sonuç
bookstore bookstore elementinin tüm alt nodelerini seçin.
/bookstore

Root elementi bookstore seçin.

Açıklama: Eğer yol başlıyorsa, bu yol her zaman belirli bir elemente olan绝对yol anlamına gelir!

bookstore/book bookstore'nın tüm alt elementlerinin book element'lerini seçin.
//book Belirtilen konumda olmasalar da tüm book alt elementlerini seçin.
bookstore//book bookstore elementinin tüm soy elementlerinin book element'lerini seçin, ne kadar derin olursa olsun.
//@lang Adı lang olan tüm özellikleri seçin.

Yargılar (Predicates)

Yargılar, belirli bir düğümü veya belirli bir değeri içeren belirli bir düğümü bulmak için kullanılır.

Yargı (Predicates) içine gömülmüştür.

Örnek

Aşağıdaki tabloda, bazı yargısal ifadeler ve bu ifadelerin sonuçları listelenmiştir:

Yol İfade Sonuç
/bookstore/book[1] bookstore alt elementinin ilk book element'ini seçin.
/bookstore/book[last()] bookstore alt elementinin son book element'ini seçin.
/bookstore/book[last()-1] bookstore alt elementinin son ikinci book element'ini seçin.
/bookstore/book[position()<3] bookstore element'inin en önündeki iki book element'ini seçin.
//title[@lang] Adı lang olan tüm title element'lerini seçin.
//title[@lang='eng'] lang özelliğinin değeri eng olan tüm title element'lerini seçin.
/bookstore/book[price>35.00] bookstore element'in tüm book element'lerini seçin ve bunların price element'inin değeri 35.00'den büyük olmalıdır.
/bookstore/book[price>35.00]/title bookstore elementindeki book elementlerinin tüm title elementlerini seçin ve bu title elementlerinin price elementlerinin değeri 35.00'den büyük olanları seçin.

Bilinmeyen Düğümleri Seçme

XPath jokerleri, bilinmeyen XML elementlerini seçmek için kullanılır.

Joker Tanım
* Herhangi bir element düğümünü eşleştirme
@* Herhangi bir özellik düğümünü eşleştirme
node() Herhangi bir türdeki düğümü eşleştirme

Örnek

Aşağıdaki tabloda, bazı yol ifadeleri ve bu ifadelerin sonuçlarını listeliyoruz:

Yol İfade Sonuç
/bookstore/* bookstore elementinin tüm alt elementlerini seçin.
//* Belgedeki tüm elementleri seçin.
//title[@*] Tüm özellikli title elementlerini seçin.

Birkaç Yol Seçme

Yol ifadelerinde "|" operatörünü kullanarak birkaç yol seçebilirsiniz.

Örnek

Aşağıdaki tabloda, bazı yol ifadeleri ve bu ifadelerin sonuçlarını listeliyoruz:

Yol İfade Sonuç
//book/title | //book/price book elementinin tüm title ve price elementlerini seçin.
//title | //price Belgedeki tüm title ve price elementlerini seçin.
/bookstore/book/title | //price bookstore elementine ait tüm book elementlerinin tüm title elementlerini ve belgedeki tüm price elementlerini seçin.