2010-11-30 36 views
0

J'utilise la bibliothèque HtmlCleaner pour l'extraction de contenu html. Cela fonctionne bien mais avec peu de limitations.Gestion d'entités spéciales telles que & nbsp;, & pound; dans HtmlCleaner

Il n'est pas capable de gérer les caractères spéciaux tels que & livre ou guillemets etc. Pour e.x. pour l'url: http://www.basicelegancefurnishings.co.uk/alaska-3-and-2-seater-sofa-setspan-classukmadespan-p-280.html, Sur donner xpath au prix, il me donne "& pound;" inplace de £

Y at-il une propriété que nous pouvons définir dans htmlcleaner pour gérer cette solution ou toute autre solution.

Merci

Jitendra

Répondre

4

Non, je ne crois pas HtmlCleaner peut le faire. Cependant, vous pouvez utiliser Apache Commons StringEscapeUtils à "unescape" le html, comme ceci:

StringEscapeUtils.unescapeHtml("£679.00"); 

produira £679.00.

Au lieu de HtmlCleaner, je vous recommande d'essayer JSoup.

+0

Je ne connaissais pas StringEscapeUtils. Merci pour cela. L'extraction de contenu dans mon cas est basée sur xpaths. Est-ce que Jsoup supporte cela? – RandomQuestion

+1

jsoup prend en charge les sélecteurs CSS pour l'extraction de contenu; devrait faire ce dont vous avez besoin. –

-1

Cela peut maintenant se faire via org.htmlcleaner.CleanerProperties - setTransSpecialEntitiesToNCR (true).

+1

Le paramètre "setTransSpecialEntitiesToNCR" n'affecte que le comportement de la sérialisation - donc votre réponse est incorrecte, HtmlCleaner (still) ne gère pas ce type d'entités HTML non échappées. Voir aussi http://htmlcleaner.sourceforge.net/parameters.php –

1

La version de htmlcleaner que j'utilise est 2.2, et org.htmlcleaner.CleanerProperties - setTransSpecialEntitiesToNCR(true) est utile pour moi. Alors que je dois utiliser le string.replace(" ", " ") pour rendre le contenu html, j'ai eu raison complètement.