h/
XPath bir W3C standardıdır XPath XML dökümanlarının kısımlarını seçmek için kullanılan bir sintakstır. XPath sorguları XML olarak yazılmazlar ama genelde XSLT ile yo ğ un bir ş ekilde kullanılır. Küçük bir programlama dili gibi fonksiyonları, testleri ve ifadeleri vardır.
XPath’in XML eleman adresi tarif yakla ş ımı i ş letim sistemlerinin dosya adresleme yöntemine benzer. XPath ifadeleri i ş letildi ğ inde tipi dü ğ üm- seti (XML a ğ acının bir grup dü ğ ümünden olu ş an bir set), boolean, rakam veya String tipinde bir nesne döndürür.
Adresler İş letim Sistemi: XPath: / = kök dizin /kütüphane = kök element /kütüphane/kitap/abc = tkütüphane klasörünün içindeki kitap klasöründeki abc dosyası /kütüphane/kitap/bölüm/kısım = kütüphanedeki her kitap içindeki bir bölümün her kısım elementi. = eri ş ilmekte olan klasör. = eri ş ilmekte olan element.. = bir üst klasör.. = eri ş ilmekte olan elementin ebeveyni /kütüphane/kitaplar/* = /kütüphane/kitaplar altındaki tüm dosyalar /kütüphane/kitaplar/bölüm/* = /kütüphane/kitaplar/bölüm altındaki tüm elementler abc = klasördeki abc adındaki dosya kısım = eri ş ilen elementin çocu ğ u olan her kısım elementi
/ ile ba ş layan bir adres dokümanın tepesinden ba ş layan mutlak bir adresi temsil eder Örnek: /mesajlar/mesaj/başlık/kimden Mutlak adresler birden fazla eleman seçebilir Tek ba ş ına bir / tüm dokümanı temsil eder A path that does not begin with a / represents a path starting from the current element Örnek: header/from / ile ba ş lamayan bir adres ş u anda eri ş ilmekte olan elementten ba ş layan bir adresi temsil eder Örnek: başlık/kimden // ile ba ş layan bir adres dokümanın herhangi bir yerinden ba ş layabilir Örnek: //başlık/kimden xml dosyasındaki başlık elementinin çocu ğ u olan bütün kimden elementlerini seçer Bu yöntem tün tüm dosyayı arama gerektirdi ğ i için pahalı olabilir
Parantez içindeki bir rakam o sayıya denk gelen belirli bir elementi seçer (saymaya 1’den ba ş lanır) Örnek: /kütüphane/kitap[1], kütüphanedeki ilk kitabı seçer Örnek: //bölüm/kısım[2] XML dokümanındaki her bölüm elementinin ikinci kısım elementini seçer Örnek: //kitap/bölüm[1]/kısım[2] last() fonksiyonu parantez içinde kullanılınca son çocu ğ u seçer Örnek: /kütüphane/kitap/bölüm[last()] Sondan bir önceki bölüm elementini seçmek için Örnek: /kütüphane/kitap/bölüm[last()]
Yıldız veya asterisk, “wild card” olarak kullanılır ve bu seviyedeki tüm elementler anlamına gelir Örnek: /kütüphane/kitap/bölüm/* ifadesi kütüphane içindeki her bir kitap elementinin her bölüm elementinin tüm çocuklarını seçer Örnek: //kitap/* ifadesi her kitap elementinin her bir çocu ğ unu seçer ( bölüm ler) Örnek: /*/*/*/paragraf ifadesi her tam olarak 3 atası olan her paragraf elementini seçer Örnek: //* ifadesi tüm dokümandaki tüm elementleri seçer
Niteliklerin kendilerini veya belirli nitelik barındıran elementleri seçebilirsiniz Hatırlatma: bir nitelik isim-de ğ er çifti barındırır örne ğ in Niteli ğ in kendisini seçmek için isminin yazılır ifadesi ismi no olan bütün nitelikleri seçer Example: ifadesi dokümanın içerisindeki tüm nitelikleri seçer
ifadesi no adında bir niteli ğ i bulunan tüm bölüm elementlerini seçer ifadesi no adında bir niteli ğ i bulunmayan tüm bölüm elementlerini seçer ifadesi bir attribute barındıran tüm bölüm elementlerini seçer ifadesi attribute barındırmayan tüm bölüm elementlerini seçer //bölüm ifadesi no adında bir niteli ğ inin de ğ eri 3 olan tüm bölüm elementlerini seçer
Anna Karenina Lev Tolstoy Can Sinekli Bakkal Halide Edip Adivar Can Puslu Kitalar Atlasi Ihsan Oktay Anar Iletisim
Root Kutuphane Kitap İ sim Yayın evi Yazar Yayın yılı ISBNFiyat
//Kutuphane/Kitap/Yayınyılı //Kutuphane/Kitap/Fiyat //Kutuphane/*/Fiyat //Yazar //ISBN /Kutuphane//Fiyat //Kutuphane/Kitap[Fiyat] //Kutuphane/Kitap[Fiyat=18]
//Kutuphane/Kitap/Yayınyılı //Kutuphane/Kitap/Fiyat //Yazar Lev Tolstoy Halide Edip Adivar Ihsan Oktay Anar
id="123" id="12" id="15" //Kutuphane/Kitap[Fiyat=18] Puslu Kitalar Atlasi Ihsan Oktay Anar Iletisim
//Kutuphane/Kitap[Fiyat<25] Anna Karenina Lev Tolstoy Can
//Kutuphane/Kitap/Yazar/text() Lev Tolstoy Halide Edip Adivar Ihsan Oktay Anar
Önceki örnekler Xpath veri a ğ acında a ş a ğ ıya do ğ ru yürümek için kullanılır. Daha kompleks sorgular ve a ğ aç üzerinde yukarıya, sa ğ a, sola vs do ğ ru ilerlemek için eksenler kullanılır //Kutuphane/Kitap[2]/self::* - Kendisi //Kutuphane/Kitap[2]/preceding::* - Önceki //Kutuphane/Kitap[2]/following::* - Sonraki //Kutuphane/Kitap[2]/ancestor::* - Ebeveyni //Kutuphane/Kitap[2]/child::* - Çocukları
//bolum[2]/self::* //bolum[2]/preceding::* //bolum[2]/following::* //bolum[2]/ancestor::* //bolum[2]/descendant::*
paragraph[1] paragraph[2] kısım[1] bolum[2]bolum[1]bolum[3] kitap[1] kitap[2] Kutuphane self ancestor descendant preceding following