Eliminar entidades HTML mientras se preservan los saltos de línea con JSoup

He estado usando JSoup para analizar letras y ha sido genial hasta ahora, pero me he encontrado con un problema.

Puedo usarNode.html() para devolver el HTML completo del nodo deseado, que retiene los saltos de línea como tales:

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;

Pero tiene el desafortunado efecto secundario, como puede ver, de retener entidades y etiquetas HTML.

Sin embargo, si usoNode.text(), Puedo obtener un mejor resultado, libre de etiquetas y entidades:

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,

Que tiene otro efecto secundario desafortunado de eliminar los saltos de línea y comprimir en una sola línea.

Simplemente reemplazando<br /> desde el nodo antes de llamar aNode.text() produce el mismo resultado, y parece que ese método está comprimiendo el texto en una sola línea en el método mismo, ignorando las nuevas líneas.

Es posible tener lo mejor de ambos mundos, y tener etiquetas y entidades reemplazadas correctamente que preserven los saltos de línea, o hay otro método o forma de decodificar entidades y eliminar etiquetas sin tener que reemplazarlas manualmente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta