Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je conserver les sauts de ligne lors de la conversion de HTML en texte brut avec Jsoup ?

Mary-Kate Olsen
Libérer: 2024-10-31 01:15:29
original
162 Les gens l'ont consulté

How Can I Preserve Line Breaks When Converting HTML to Plain Text with Jsoup?

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>
Copier après la connexion

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>
Copier après la connexion

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 :

  1. Les sauts de ligne d'origine (n) sont conservés.

  2. et

    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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!