Örnek XML Dokümanı
Örneklerde aşağıdaki XML dosyayı kullanacağız.
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="en">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="en">Learning XML</title> <price>39.95</price> </book> </bookstore>
Düğüm Seçme
XPath XML dokümanı içerisindeki düğümleri seçmek için yol ifadeleri kullanır. Düğüm yol ve adım takip edilerek seçilir. En kullanışlı yol ifadeleri aşağıda listelenmiştir:
İfade | Açıklama |
---|---|
dugumadi | "dugumadi" isimli bütün düğümleri seçer |
/ | Kök düğümden itibaren seçer |
// | Seçim ile eşleşen ve hangi detayda olduğuna bakılmadan geçerli düğümden doküman içerisindeki tüm düğümleri seçer |
. | Geçerli düğümü seçer |
.. | Geçerli düğümünün ebeveynini seçer |
@ | Özellikleri seçer |
Aşağıdaki tabloda bazı yol idadeleri ve sonuçları listelenmiştir:
Yol İfadesi | Sonuç |
---|---|
bookstore | "bookstore" isimli bütün düğümleri döner |
/bookstore | kök eleman olan "bookstore" elemanını seçer Not: "/" işareti kullanıldığında mutlak yol girilmedilir. |
bookstore/book | "bookstore" elemanının çocukları olan "book" düğümlerini |
//book | Dokümanın neresinde olursa olsun tüm "book" elemanlarını seçer |
bookstore//book | "bookstore" elemanının alt düğümlerinde olan tüm "book" düğümlerini seçer |
//@lang | "lang" isimli tüm özellikleri seçer |
Tahminler
Tahminler belirli bir düğümü bulmak için veya özel bir değere içeren düğümü bulmak için kullanılır.
Tahminler her zaman köşeli parantezler içine gömülüdür.
Aşağıdaki tabloda bazı tahmin içeren yol ifadeleri ve sonuçları listelenmiştir:
Yol İfadesi | Sonuç |
---|---|
/bookstore/book[1] | "bookstore" elemanın çocuğu olan ilk "book" düğümünü seçer. |
/bookstore/book[last()] | "bookstore" elemanın çocuğu olan son "book" düğümünü seçer. |
/bookstore/book[last()-1] | "bookstore" elemanın çocuğu olan sondan bir önceki "book" düğümünü seçer. |
/bookstore/book[position()<3] | "bookstore" elemanın çocuğu olan ilk iki "book" düğümünü seçer. |
//title[@lang] | "lang" özelliği olan "title" elemanlarını seçer |
//title[@lang='en'] | "lang" özelliğinin değeri "en" olan "title" elemanlarını seçer |
/bookstore/book[price>35.00] | "bookstore" elemanın çocuğu olan "price" özelliğinin değeri 35'ten büyük olan "book" elemanlarını seçer. |
/bookstore/book[price>35.00]/title | "bookstore" elemanın "price" özelliğinin değeri 35'ten büyük olan "book" düğümlerinin "title" elemanlarını seçer. |
Bilinmeyen Düğümleri Seçmek
XPath joker tanımları (wildcards) bilinmeyen XML düğümleri seçmek için kullanılır.
Joker Tanım | Açıklama |
---|---|
* | Herhangi bir eleman düğümü ile eşleşir |
@* | Herhangi bir özellik düğümü ile eşleşir |
node() | Herhangi bir tip düğüm ile eşleşir |
Aşağıdaki tabloda bazı yol ifadeleri ve sonuçları listelenmiştir:
Yol İfadesi | Sonuç |
---|---|
/bookstore/* | "bookstore" elemanının bütün düğümlerini seçer |
//* | dokümandaki bütün elemanları seçer |
//title[@*] | herhangi bir özelliği olan tüm "title" elemanlarını seçer |
Bir Kaç Yol Seçme
"|" karakterini kullanılarak hazırlanan XPath ifadesi bir kaç yol seçmeyi sağlar.
Aşağıdaki tabloda bazı yol ifadeleri ve sonuçları listelenmiştir:
Yol İfadesi | Sonuç |
---|---|
//book/title|//book/price | "bookstore" elemanının çocukları olan "book" ve "price" düğümlerini seçer |
//title|//price | bütün "book" ve "price" düğümlerini seçer |
/bookstore/book/title|//price | "bookstore" elemanın "book" düğümlerinin "title" elemanlarını ve bütün "price" düğümlerini seçer. |