# Typsicherer HTML-Parser



## sina.die (8. Feb 2011)

Hallo,

kann mir jemand einen Java Html-Parser empfehlen?
Ich hätte gern einen, der mit ein möglichst typsicheres Modell erzeugt. Also so, dass z.B. ein p-Tag ein Objekt der Klasse ParagraphTag ist.
Hier HTML Parser 2.0 seh ich schon sowas. Ich hab aber blöderweise nicht bei allen HTML-Parsern ein Liste gefunden, welche Tags unterstützt werden (bzw. ob sie überhaupt typsicher arbeiten). Wenn es noch einen anderen geben würde, der noch mehr Tags unterstützen würden, als der oben genannte, wär's super.

Danke schonmal!

Sina


----------



## Marco13 (8. Feb 2011)

Bin nicht ganz sicher, was du mit "Typsicher" meinst. Typsicher im Java-Typ-Sinn? Ich fand Jericho HTML Parser ganz gut, weil er robust auch "kaputten" Code parst, IMHO relativ leicht zu verwenden und relativ mächtig ist, und man aus Basis der Beispiel-Schnipsel schnell was basteln kann. Aber je nach Anwendung, Zielsetzung und Anforderungen kann auch ein anderer geeigneter sein.


----------



## sina.die (8. Feb 2011)

Marco13 hat gesagt.:


> Bin nicht ganz sicher, was du mit "Typsicher" meinst. Typsicher im Java-Typ-Sinn?


Hmm, naja, ich meine so, dass ich beim Parsen gleich den Tag mit dem richtigen Typen bekomme. Also z.B. ein Objekt der Klasse "ParagraphTag", statt einem "Tag" bei einem geparsten <p>.



> weil er robust auch "kaputten" Code parst


Der HTML-Code ist zum Glück ziemlich heil. 

Edit:
Achso und die Anforderung: Es sollen einige Tags in ein anderes Format umkonvertiert werden. Die Typsicherheit, wär dabei eine große Hilfe.


----------



## Marco13 (8. Feb 2011)

Ja, das meinte ich - aber ich bin nicht sicher, wie genau das ablaufen soll. Wenn man einen Node hat, und sich davon die Children holt, kann das erstmal nur eine Liste mit ziemlich "unspezifischen" Elementen sein (d.h. vermutlich wieder nur "Nodes"). Dass davon eines vielleicht ein <p> Tag ist, und eines vielleicht ein <div>, muss man dann wohl überprüfen.
Aber vielleicht hat ja noch jemand eine Idee...


----------



## HoaX (8. Feb 2011)

Mittels XStream sollte sich sowas machen lassen können imo.


----------



## Wildcard (8. Feb 2011)

HoaX hat gesagt.:


> Mittels XStream sollte sich sowas machen lassen können imo.



HTML ist doch gar nicht notwendigerweise valides XML?
Ausserdem dürfte Mixed Content mit XStream ziemlich kompliziert werden.


----------

