Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo!
ich habe jetzt auch mal diesen Parser probiert, allerdings weiß ich nicht so richtig wie ich den anwenden soll. Also mein HTML Code ist z.B. dieser
<html>
<head></head>
<title>Test</title>
<body>
Test
TestText</p>
</body>
</html>
Nun möchte ich z.B. sämtlichen Text einschließlich aller Tags innerhalb des Body Elements ermittelen lassen und mache das so:
Code:
try {
Parser parser = new Parser(html.getText());
NodeList list = parser.parse(new NodeFilter(){
public boolean accept(Node arg0) {
return arg0.equals(HTML.Tag.BODY);
}
});
System.out.println(list.size());
}catch (Exception ex){
}
Allerdings liefert mir die Liste immer 0 zurück. Warum ? Kannst du mir vielleicht ein eifnaches Beispiel mit diesem Parser geben?
Ja da hast du wohl recht diese innere Tag Klasse hat ja gar nichts mit dem Parser zu tun )
Aber deine obige Lösung hat leider auch nicht funktioniert. Aber nach weiterem probieren und googeln bin ich nun auf das gestoßen:
Code:
String resultOutput = "";
try {
Parser test = new Parser(htmlText);
NodeList list = test.parse(new TagNameFilter("Body");
Node n = list.elementAt(0);
resultOutput = n.getChildren().toHtml();
}catch (ParserException ex){
ex.printStackTrace();
}
Nodes haben nicht zwangslaeufig Attribute. Du musst die Nodes explizit nach Tag casten, dann kannst du per getAttribute() auf die Attribute zugreifen. Alles wichtige steht eigentlich hier.