Préserver les sauts de ligne lors de la conversion de HTML en texte brut avec Jsoup
Lors de la conversion de contenu HTML en texte brut, il est essentiel de conserver les sauts de ligne pour plus de lisibilité . Par défaut, la méthode text() de Jsoup supprime les sauts de ligne, perturbant potentiellement le formatage de votre sortie. Heureusement, il existe une solution de contournement qui exploite la méthode getWholeText() pour conserver les sauts de ligne.
Utiliser getWholeText() pour conserver les sauts de ligne
La méthode getWholeText() dans Jsoup renvoie l'intégralité du contenu textuel d'un document, y compris les sauts de ligne. Pour utiliser cette méthode, vous pouvez suivre ces étapes :
Analyser votre chaîne HTML à l'aide de Jsoup :
<code class="java">Document doc = Jsoup.parse(htmlString);</code>
Parcourir les éléments du document et extraire le texte :
<code class="java">for (Element element : doc.getAllElements()) { text += element.getWholeText().trim(); if (element.tagName().equals("br")) { text += "\n"; } }</code>
En ajoutant un saut de ligne après chaque balise
, vous pouvez vous assurer que les sauts de ligne sont conservés dans votre texte de sortie.
Solution avancée : méthode br2nl()
La solution ci-dessus fonctionne efficacement mais peut être améliorée en incorporant la méthode utilitaire suivante :
<code class="java">public static String br2nl(String html) { if (html == null) { return html; } Document document = Jsoup.parse(html); document.outputSettings(new Document.OutputSettings().prettyPrint(false)); document.select("br").append("\n"); 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 méthode préserve non seulement la ligne pauses de
et
balises, mais garantit également que les nouvelles lignes dans le code HTML d'origine sont conservées. Pour ce faire, il ajoute sélectivement des sauts de ligne aux éléments HTML, puis effectue une substitution d'expression régulière pour remplacer les sauts de ligne échappés par de véritables nouvelles lignes.
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!