Suppression d'entités HTML, tout en préservant les sauts de ligne avec JSoup

J'ai été en utilisant JSoup pour analyser les paroles et il a été formidable jusqu'à présent, mais se sont heurtés à un problème.

Je peux utiliser Node.html() pour retourner le HTML complet du nœud, qui permet de conserver les sauts de ligne en tant que tel:

Glóandi augu, silfurnátt
<br />Bl&oacute;&eth; alv&ouml;ru, starir &aacute;
<br />&Oacute;&eth;ur hundur er &iacute; v&iacute;gam&oacute;&eth;, &iacute; maga... m&eacute;r
<br />
<br />Kolni&eth;ur gref, kvik sem dreg h&eacute;r
<br />Kolni&eth;ur svart, hvergi bjart n&eacute;

Mais a l'inconvénient effet, comme vous pouvez le voir, de retenir les entités HTML et les balises.

Cependant, si j'utilise Node.text(), je peux obtenir un meilleur aspect, gratuit de balises et d'entités:

Glóandi augu, silfurnátt Blóð alvöru, starir á Óður hundur er í vígamóð, í maga... mér Kolniður gref, kvik sem dreg hér Kolniður svart,

Qui a une autre malheureuse côté-effet de supprimer les sauts de ligne et de la compression en une seule ligne.

Remplaçant simplement <br /> à partir du nœud avant d'appeler Node.text() donne le même résultat, et il semble que cette méthode est la compression du texte sur une seule ligne dans la méthode elle-même, ignorant les retours à la ligne.

Est-il possible d'avoir le meilleur des deux mondes, et ont des étiquettes et des entités remplacées correctement qui en préservant les sauts de ligne, ou est-il une autre méthode ou un moyen de décodage des entités et de la suppression de balises sans avoir à les remplacer manuellement?

OriginalL'auteur joshschreuder | 2011-03-18