XPath Test Aracı

XML veya HTML'e karşı XPath ifadelerini test edin ve eşleşen her düğümü, değeri ve yolu inceleyin.

Girdi türü
XML / HTML girdisi
Sonuçlar
Test etmek için XML veya HTML ve bir XPath ifadesi girin.

XML, HTML ve XPath girdileriniz tarayıcınızda test edilir. BroBroGo'ya hiçbir şey yüklenmez.

SSS

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.

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.