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óð alvöru, starir á
<br />Óður hundur er í vígamóð, í maga... mér
<br />
<br />Kolniður gref, kvik sem dreg hér
<br />Kolniður svart, hvergi bjart né
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
Vous devez vous connecter pour publier un commentaire.
(avis de non responsabilité) je n'ai pas utilisé cette API ...
mais un rapide coup d'oeil à la documentation suggère que vous pourriez visiter chaque descendant du nœud et de la vider de son contenu de texte. Les pauses pourrait être inséré lorsque des balises spéciales comme
<br>
sont rencontrés.La TextNode.getWholeText() appel semble également utile.
Dois mentionner que je n'ai pas lu l'API, mais j'ai clairement manqué la fonction que vous l'avez souligné.
OriginalL'auteur qwerty
basée sur une autre réponse de stackoverflow j'ai ajouté quelques correctifs et est venu avec
Espère que cette aide
OriginalL'auteur petrumo