Bir düğüm bulma (ya da buna yakın) olmayan iyi biçimli HTML XPath

oy
3

Ben bir düğüm (veya ona yakın bir şey) yaklaşık 10 seviyeleri derin olmayan iyi biçimli HTML var bir şablona bulmak için XPath kullanıyorum. (Hayır bu HTML yazmadım ... ama içinden kazmak için görevli.)

Ben eklenti Firefox için XPartner kullanarak söz konusu elemana bir XPath almak mümkün görünmektedir; Ancak bu sadece bana Canlı sitede yerini verir ve şablonda bana verilen değil. (Şablon standart olmayan bir sunucu tarafı komut dosyası dilinden olduğu; in-house inşa edilmiş bir dil okuyun)

Eğer sigara iyi biçimli HTML yoluyla sersemleyici özellikle iyi olduğunu biliyorum herhangi XPath araç bulunmaktadır.

Oluştur 09/12/2008 saat 22:39
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
4

XPath ifadeleri olmayan bir Wellformed XML belgesine agaist değerlendirilemez tam olarak tarif durumdur.

XPath ifadesini uygulamak - O Wellformed XML ve daha sonra ikinci HTML dönüştürmek için ilk olmak üzere iki zincirleme adımlarla, bunu yapmak mümkündür.

"XML, HTML dönüştürmek için nasıl o XPath ifadeleri buna karşı değerlendirilebilir böylece" Bu nedenle, soru daha kesin ifade edilebilir.

İşte iki iyi araçlar şunlardır:

  1. TagSoup , bir açık kaynak programı tarafından geliştirilen tabanlı araç, -, bir Java ve SAX olan John Cowan . Gerçi oldukça sık çok altında gelen, yoksul kötü ve hayvani: Bu vahşi bulunur bulunmaz, bunun yerine iyi biçimli veya geçerli XML ayrıştırma, HTML ayrıştırır Java ile yazılmış bir SAX uyumlu ayrıştırıcısıdır. TagSoup rasyonel uygulama tasarımı biraz olsun kullanarak bunları işlemek zorunda kişiler için tasarlanmıştır. Bir SAX arayüzü sağlayarak, standart XML araçları bile kötü HTML uygulanacak sağlar. TagSoup ayrıca HTML dosyalarını okur ve XHTML yakın bir tahmindir temiz HTML veya iyi biçimlendirilmiş XML ya üretebilir bir komut satırı işlemcisi içerir. Saçak TagSoup ticari bir C ++ portudur.

  2. SgmlReader Microsoft'un geliştirdiği bir araçtır Chris Lovett . SgmlReader herhangi SGML belgesi (HTML desteği yerleşik dahil) üzerinde bir XmlReader API'dir. Bir komut satırı yardımcı de iyi oluşturulmuş XML sonuç verir sağlanır. Bağımsız çalıştırılabilir ve tam kaynak kodu dahil zip dosyasını indirin: SgmlReader.zip

  3. HTML saf XSLT 2.0 Ayrıştırıcı tarafından yazılan David Carlisle . Kodunu Okuma bizi herkes için büyük bir öğrenme egzersizi olurdu.

tanımıyla:

"D: htmlparse (dize) d: htmlparse (dize, ad, html-mod)

Bir bağımsız değişken bir şekilde d) eşdeğerdir: htmlparse (dize, ' http://ww.w3.org/1999/xhtml ' doğru ()))

Bazı dahili sezgisel tarama için) kontrol ima açılması ve elemanlarının kapanma kullanarak HTML ve / veya XML olarak dizeyi ayrıştırır.

Bu HTML DTD tam bilgiye sahip değil ama boş elemanlar ve taraf tanımlarının tam listesi tam listesini var. HTML öğeleri ve ondalık ve onaltılık karakter referansları bütün kabul edilir. Not html-varlıklar tanınan bile html mod = false ().

ve bu onur duyacağız bu durumda girdi ad beyanlarını explict sürece hayır-ad belirtmek için "" olabilir ad parametresi (tarafından belirtilen ad alanına yerleştirilen (html modlu doğrudur () ise) Eleman isimleri küçük harfli edilir .

Özellik isimleri küçük harfli olan ") (html mod = true olursa

Daha detaylı açıklamasını okuyun burada .

Cevap 10/12/2008 saat 03:21
kaynak kullanıcı

oy
0

XPath HTML ile doğrudan çalışmaz. HTML'nize ile XPath'ın etkileşim yazılım / kitaplık oluşturma ağaca HTML ayrıştırma ne olursa olsun tarafından dictacted edilir. Bu uygun aramanızı yönlendirmek yardımcı olabilir.

Cevap 09/12/2008 saat 23:40
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more