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óð 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é
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?