Préserver les sauts de ligne avec la conversion HTML en texte brut de Jsoup
Jsoup propose des outils robustes pour manipuler le HTML, mais sa conversion par défaut du HTML en texte brut le texte peut fusionner les sauts de ligne, les rendant ainsi sous forme de texte continu. Pour préserver ces sauts, voici comment utiliser Jsoup :
Une fonction personnalisée pour la préservation des sauts de ligne :
L'extrait de code Java fourni introduit une fonction personnalisée, noTags, qui exploite le texte() de Jsoup. méthode pour supprimer les balises HTML du HTML d’entrée. Cependant, il ne conserve pas les sauts de ligne.
Amélioration de la fonction avec l'extraction de texte entier :
La classe JsonNode de Jsoup propose une méthode getWholeText(), qui extrait le contenu du texte tout en respectant les sauts de ligne. Grâce à cette méthode, la fonction noTags peut être améliorée :
<code class="java">public String noTags(String str) { return Jsoup.parse(str).wholeText(); }</code>
Mise en œuvre de la préservation des sauts de ligne :
Pour une solution plus raffinée qui préserve les sauts de ligne :
<code class="java">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 <br> tags document.select("br").append("\n"); // Prepend line breaks for <p> 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)); }</code>
Cette fonction personnalisée garantit que les sauts de ligne sont préservés, en s'alignant sur la sortie souhaitée. Il remplit deux exigences clés :
les balises sont converties en sauts de ligne (n).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!