XPath ifadesi nasıl test edilir?
- XML'inizi yapıştırın, bir dosya açın veya örnek ürün kataloğunu kullanın.
- Bir XPath ifadesi yazın veya örneklerden birine tıklayın. Sonuç siz yazarken güncellenir; Enter tuşu ifadeyi hemen değerlendirir.
- Sonucu okuyun: eşleşen düğümlerin sayısı, türleri ve içerikleriyle birlikte ya da ifadenin döndürdüğü sayı, dize veya boolean değer.
XPath hızlı başvuru tablosu (cheat sheet)
| İfade | Seçtiği |
|---|---|
/catalog | catalog kök öğesi |
//product | Her derinlikteki tüm product öğeleri |
/catalog/product/name | Kökten adım adım ilerleyerek her ürünün name öğesi |
//product/@id | Her ürünün id özniteliği |
//product[@category='books'] | category özniteliği books olan ürünler |
//product[price > 20] | Fiyatı 20'den büyük olan ürünler (sayı olarak karşılaştırılır) |
//product[contains(name, 'USB')] | Adında “USB” geçen ürünler (büyük/küçük harfe duyarlı) |
//product[not(tags)] | tags alt öğesi olmayan ürünler |
(//product)[1] | Belgedeki ilk ürün |
//product[1] | Her üst öğenin içindeki ilk ürün |
//product[last()] | Her üst öğenin içindeki son ürün |
//name/text() | name içindeki metin düğümleri |
//price/.. | Her price öğesinin üst öğesi |
//*[local-name()='product'] | Herhangi bir ad alanındaki product öğeleri |
count(//product) | Ürün sayısı |
sum(//price) | Tüm fiyatların toplamı |
string(//product[1]/name) | İlk ürünün adı (dize olarak) |
XPath'te ad alanları (namespace)
XPath 1.0'da varsayılan ad alanı yoktur. Site haritası veya NF-e faturası gibi xmlns="…" içeren bir belgede //url hiçbir şey bulmaz, çünkü öğeler bu ad alanına aittir. Bu nedenle test aracı varsayılan ad alanını x: önekine (veya x zaten kullanılıyorsa d: önekine) eşler; böylece //x:url/x:loc çalışır. Belgede tanımlanan önekler, örneğin bir CFDI faturasındaki cfdi:, yazıldığı gibi kullanılabilir. Ad alanı ayarı olmayan araçlarda //*[local-name()='url'] her yerde çalışır.
Sıkça sorulan sorular
Test aracı hangi XPath sürümünü destekliyor?
Tüm tarayıcılarda ve çoğu XML kütüphanesinde yerleşik olan XPath 1.0 sürümünü. XPath 2.0 ve sonraki sürümlerdeki matches(), lower-case() veya string-join() gibi fonksiyonlar kullanılamaz.
XPath ifadem neden hiçbir şey döndürmüyor?
En yaygın nedenler şunlardır: varsayılan ad alanı (örneklerin altında gösterilen x: önekini kullanın), farklı büyük/küçük harf kullanımı – XPath büyük/küçük harfe duyarlıdır – ve 0'dan değil 1'den başlayan konumlar.
Kaç sonuç gösteriliyor?
Tüm eşleşmeler sayılır ve ilk 500 tanesi düğüm türü ve içeriğiyle birlikte listelenir.
XML'im bir yere yükleniyor mu?
Hayır. XML tarayıcınızda ayrıştırılır ve sorgulanır. Yalnızca yüklediğiniz bir URL sunucumuz üzerinden getirilir.