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?
Java: HTML DOM Traversal
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
Mek
Addict
- Príspevky: 4661
- Registrovaný: 23 mar 2005, 23:00
- Bydlisko: ZA <-> TN
- Kontaktovať používateľa:
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:Ale hadze mi to chybu: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
Pritom ten dokument validatorom w3c presiel az na par nepodstatnosti suvisiacich s chybajucim atributom alt pri obrazkoch.
//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));
}
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)
.
.
.
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>";