Conservar saltos de línea con la conversión de HTML a texto sin formato de Jsoup
Jsoup ofrece herramientas sólidas para manipular HTML, pero su conversión predeterminada de HTML a formato simple El texto puede fusionar saltos de línea y convertirlos en texto continuo. Para preservar estos saltos, así es como puede utilizar Jsoup:
Una función personalizada para la preservación de saltos de línea:
El fragmento de código Java proporcionado presenta una función personalizada, noTags, que aprovecha el texto de Jsoup() Método para eliminar etiquetas HTML del HTML de entrada. Sin embargo, no mantiene saltos de línea.
Mejora de la función con extracción de texto completo:
La clase JsonNode de Jsoup ofrece un método getWholeText(), que extrae el contenido del texto respetando los saltos de línea. Con este método, se puede mejorar la función noTags:
public String noTags(String str) {
return Jsoup.parse(str).wholeText();
}
Implementación de la preservación de saltos de línea:
Para una solución más refinada que preserva los saltos de línea:
public static String br2nl(String html) {
if (html == null)
return html;
Document document = Jsoup.parse(html);
// Suppress pretty printing to preserve line breaks and spacing
document.outputSettings(new Document.OutputSettings().prettyPrint(false));
// Append line breaks for
tags
document.select("br").append("\\n");
// Prepend line breaks for tags
document.select("p").prepend("\\n\\n");
String s = document.html().replaceAll("\\\\n", "\n");
return Jsoup.clean(s, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));
}
Esta función personalizada garantiza que se conserven los saltos de línea, alineándose con la salida deseada. Cumple dos requisitos clave:
se convierten en saltos de línea (\n).
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3