XPath Test Aracı ile XML ve HTML Analizi
XPath (XML Path Language), XML ve HTML belgelerindeki düğümlere, özniteliklere ve metin içeriklerine doğrudan erişim sağlayan güçlü bir sorgulama dilidir. XPath Test Aracı, hazırladığınız XPath ifadelerini sağladığınız XML veya HTML içerikleri üzerinde anında test etmenize olanak tanır. Sorgu sonucunda eşleşen tüm bölümler; türü, adı, yolu ve değer önizlemesiyle birlikte listelenir.
Araç üzerinde çalışırken girdiğiniz tüm veriler doğrudan kendi tarayıcınızda işlenir. XML, HTML ve XPath girdileriniz tarayıcınızda test edilir ve BroBroGo'ya hiçbir şey yüklenmez. Bu sayede verileriniz üçüncü taraf sunuculara gönderilmeden yerel olarak analiz edilir.
Girdi Sınırları ve Teknik Kurallar
Aracın kararlı çalışması ve tarayıcı performansının korunması için belirli girdi sınırları ve değerlendirme kuralları uygulanmaktadır:
- XML / HTML girdisi: En fazla 500.000 karakter uzunluğunda XML veya HTML biçimli metin kabul edilir. Belge boyutu bu sınırı aşarsa ekranda "Bu belge burada test etmek için çok büyük. Daha küçük bir örnek deneyin." uyarısı gösterilir.
- XPath ifadesi: En fazla 4.000 karakter uzunluğunda bir XPath ifadesi girilebilir. Bu sınır aşıldığında "Bu XPath ifadesi burada test etmek için çok uzun." uyarısı verilir.
- Zaman Aşımı: Sayfanın yanıt vermeyi durdurmasını önlemek amacıyla, araç XPath ifadesini değerlendirmeyi 2 saniye sonra sonlandırır. Sorgu bu sürede tamamlanmazsa "Bu XPath sorgusunun çalışması çok uzun sürdü. İfadeyi daraltın veya daha küçük bir örnek kullanın." mesajı görüntülenir.
- Sonuç Sınırı: Sorgu sonucunda 200'den fazla eşleşme bulunursa, araç "İlk
{max}kayıt gösteriliyor." bilgisini paylaşarak yalnızca ilk 200 sonucu listeler.
XML ve HTML Modları Arasındaki Farklar
Araçta "Girdi türü" seçeneği altında "XML" ve "HTML" olmak üzere iki farklı mod bulunur. Doğru eşleşmeleri elde etmek için belgenizin yapısına uygun modu seçmeniz gerekir:
| Özellik / Davranış | XML Modu | HTML Modu |
|---|---|---|
| Ad Alanı (Namespace) Kuralları | Sıkı bir şekilde takip edilir. | Geçersizdir veya dikkate alınmaz. |
| Hata Toleransı | Katıdır; hatalı etiket kapatmaları ayrıştırma hatasına yol açar. | Esnektir; eksik veya hatalı etiket barındıran yapılarda da çalışır. |
| Basit Yol Eşleşmeleri | Belge şemasına ve ad alanlarına tam uyum gerektirir. | //a gibi basit yolların doğrudan normal etiketlerle eşleşmesine izin verir. |
XML modunda çalışırken, belgede tanımlanmış olan ad alanı önekleri XPath ifadesi içerisinde //x:item şeklinde kullanılabilir. Varsayılan ad alanları tanımlanmışsa, //item kullanımı da belgedeki bildirimi takip ederek doğru düğümleri hedefler.
Hata Mesajları ve Anlamları
Sorgulama ve ayrıştırma işlemleri sırasında karşılaşılabilecek olası hatalar ve aracın ürettiği hata bildirimleri şunlardır:
- Bu belge ayrıştırılamadı.: Sağlanan XML veya HTML girdisi standartlara uygun bir biçimde yapılandırılmadığında veya ciddi sözdizimi hataları barındırdığında bu hata gösterilir.
- Bu XPath ifadesi geçerli değil.: Yazılan XPath ifadesinde sözdizimi hatası olduğunda (örneğin açık kalmış parantezler veya yanlış operatör kullanımı) bu uyarı verilir.
- Bu XPath değerlendirilemedi.: İfade sözdizimsel olarak doğru görünse de mevcut belge yapısı üzerinde mantıksal veya teknik nedenlerle çalıştırılamadığında bu mesaj üretilir.
- Sonuç bulunamadı.: Sorgulanan XPath ifadesi belgede hiçbir düğüm, öznitelik veya metin ile eşleşmediğinde bu durum bildirilir.
XPath Sorgularını Optimize Etme Stratejileri
Büyük belgelerde 2 saniyelik zaman aşımı sınırına takılmamak ve tarayıcıyı yormamak için XPath ifadelerinin optimize edilmesi gerekir. Performansı artırmak için şu stratejiler uygulanabilir:
- Doğrudan Yolları Tercih Edin: Belgenin en tepesinden itibaren tüm ağacı tarayan
//operatörünü kontrolsüz kullanmak yerine, biliniyorsa/root/parent/childşeklinde doğrudan yollar tanımlayın. - Seçicileri Daraltın: Belirli bir özniteliğe sahip düğümleri ararken
//*[@id="target"]yerine, düğüm türünü belirterek//div[@id="target"]şeklinde arama yapın. - Metin ve Konum Filtrelerini Sınırlayın: Ağaç üzerinde derinlemesine metin araması yapan fonksiyonları belgenin tamamı yerine yalnızca ilgili alt dallarda çalıştırın.
Sıkça Sorulan Sorular
XML'in yanı sıra HTML üzerinde de XPath testi yapabilir miyim?
Evet. XML modu XML ad alanı (namespace) kurallarını korur. HTML modu ise daha esnektir ve //a gibi basit yolların normal etiketlerle eşleşmesine izin verir.
XML ad alanları (namespaces) nasıl çalışır?
XML'inizde tanımlanan ad alanı önekleri, XPath içinde //x:item şeklinde kullanılabilir. Varsayılan ad alanları için //item kullanımı da belge bildirimini takip eder.
Bir sorgu neden zaman aşımına uğrayabilir?
Çok büyük belgelerin veya geniş kapsamlı ifadelerin değerlendirilmesi maliyetli olabilir. Sayfanın yanıt vermeye devam etmesi için araç çalışmayı 2 saniye sonra durdurur; yolu daraltmayı veya daha küçük bir örnek kullanmayı deneyin.
Bu araç canlı web sayfalarının yapısını test edebilir mi?
Hayır. Bu araç, sağladığınız statik metin girdileri üzerinde çalışır. Çevrimiçi sayfaların gerçek zamanlı yapısını, tarayıcıda işlenmiş DOM ağacını veya ağ isteklerini temsil etmez ve bunları doğrudan analiz edemez.