2010-11-30 5 views
0

Ich benutze HtmlCleaner Bibliothek für HTML-Content-Extraktion. Es funktioniert fair, aber mit wenigen Einschränkungen.Umgang mit speziellen Entitäten wie & nbsp;, & Pfund; in HtmlCleaner

Es ist nicht in der Lage, Sonderzeichen wie & Pfund oder Anführungszeichen usw. zu handhaben. Für e.x. für url: http://www.basicelegancefurnishings.co.uk/alaska-3-and-2-seater-sofa-setspan-classukmadespan-p-280.html, Auf geben xpath zu preis, es gibt mir "& Pfund;" anstelle von £

Gibt es eine Eigenschaft, die wir in htmlcleaner für den Umgang mit dieser oder einer anderen Lösung einstellen können.

Dank

Jitendra

Antwort

4

Nein, ich glaube nicht, HtmlCleaner dies tun können. Sie können jedoch Apache Commons StringEscapeUtils auf "unescape" die html, wie folgt verwenden:

StringEscapeUtils.unescapeHtml("£679.00"); 

wird £679.00 produzieren.

Anstelle von HtmlCleaner, würde ich empfehlen, versuchen Sie JSoup.

+0

Ich wusste nicht über StringEscapeUtils. Danke dafür. Die Content Extraction basiert in meinem Fall auf XPaths. Unterstützt Jsoup das? – RandomQuestion

+1

jsoup unterstützt CSS-Selektoren für die Inhaltsextraktion; sollte tun, was Sie brauchen. –

-1

Dies kann jetzt durch org.htmlcleaner.CleanerProperties - setTransSpecialEntitiesToNCR (true) erfolgen.

+1

Der Parameter "setTransSpecialEntitiesToNCR" wirkt sich nur auf das Serialisierungsverhalten aus - Ihre Antwort ist also falsch, HtmlCleaner (noch) verarbeitet diese Art von nicht-gehemmten HTML-Entitäten nicht. Siehe auch http://htmlcleaner.sourceforge.net/parameters.php –

1

Die Version von htmlcleaner, die ich verwende, ist 2.2, und org.htmlcleaner.CleanerProperties - setTransSpecialEntitiesToNCR(true) ist nützlich für mich. Während ich den string.replace(" ", " ") verwenden muss, um den HTML-Inhalt zu machen, bin ich völlig richtig.