Java: HTML DOM Traversal

Programovacie jazyky, rady, poradňa...
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Java: HTML DOM Traversal

Príspevok od používateľa Mek »

Zdravim,
mam v retazci v Jave nacitany HTML kod a potrebujem odtial vytiahnut nejake informacie. Viem, ako by som to spravil pomocou JavaScriptu, ale potrebujem to v Jave. Googlil som rozne parsery, ale vsetko bolo nepouzitelne. Potrebujem pouzivat metody ako getElementsByAttributeValue, parentNode, nextSibling a podobne zalezistosti, ktore sa pouzivaju v JavaScripte.
Vedeli by ste odporucit nejaku kniznicu, ktora taketo metody obsahuje?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

audiotrack, diky, skusim to tak.

//autoeditácia príspevku ( 29 May 2009, 18:31 )
Hm, nepomohlo.
HTML kod na rozparsovanie mam v premennej devicesCode
Najprv na skusku som chcel ziskat vsetky atributy td a vypisat ich obsah:

Kód: Vybrať všetko

        DOMParser parser = new DOMParser();
        try {
            parser.parse(new InputSource(new java.io.StringReader(devicesCode)));
        } catch (SAXException ex) {
            Logger.getLogger(NMSComm.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
        Document doc = parser.getDocument();
        NodeList td=doc.getElementsByTagName("td");
        for(int i=0;i<=td.getLength()-1;i++)
        {
            System.out.println(td.item(i));
        }
Ale hadze mi to chybu:

Kód: Vybrať všetko

[Fatal Error] loose.dtd:31:3: The declaration for the entity "HTML.Version" must end with '>'.
29.5.2009 18:27:22 nmschecker.NMSComm getState
SEVERE: null
org.xml.sax.SAXParseException: The declaration for the entity "HTML.Version" must end with '>'.
        at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239)
.
.
.
Na googli som sa o tom prakticky nic nedocital. Skusal som aj upravit ten kod tak, aby obsahoval Doctype a vsetko to, co do riadneho html dokumentu patri, no to tuto chybu neodstranilo :(

Kód: Vybrať všetko

        devicesCode="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title></title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body>"+devicesCode+"</body></html>";
Pritom ten dokument validatorom w3c presiel az na par nepodstatnosti suvisiacich s chybajucim atributom alt pri obrazkoch.
Napísať odpoveď