Maison > Java > javaDidacticiel > Comment conserver les sauts de ligne lors de la conversion de HTML en texte à l'aide de Jsoup ?

Comment conserver les sauts de ligne lors de la conversion de HTML en texte à l'aide de Jsoup ?

DDD
Libérer: 2024-10-31 20:37:29
original
258 Les gens l'ont consulté

How to Preserve Line Breaks When Converting HTML to Text Using Jsoup?

Préserver les sauts de ligne lors de la conversion HTML en texte à l'aide de Jsoup

Lors de la conversion de HTML en texte brut à l'aide de jsoup, il est possible de conserver les sauts de ligne crucial pour maintenir la lisibilité et la structure du résultat. Par défaut, la méthode text() de jsoup ne conserve pas les sauts de ligne présents dans le code HTML.

Solution :

Pour conserver efficacement les sauts de ligne, utilisez br2nl() méthode, qui intègre les améliorations suivantes :

  1. Préserver les éléments existants Nouvelles lignes : Si le HTML d'origine contient des caractères de nouvelle ligne (n), ils sont conservés dans la sortie.
  2. Convertir
    et

    Tags : Les sauts de ligne sont introduits en ajoutant n au contenu de
    balises. De plus, nn est ajouté au début du contenu de

    balises pour signifier de nouveaux paragraphes.

  3. Post-traitement : Le HTML modifié est rendu et toutes les nouvelles lignes échappées restantes (\n) sont converties en nouvelles lignes réelles (n). Pour garantir une gestion correcte des autres caractères spéciaux, la chaîne résultante est nettoyée à l'aide de Jsoup.clean().

Utilisation :

<code class="java">import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class LineBreakPreserver {

    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));
    }

    public static void main(String[] args) {
        String html = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN \">" +
                "<HTML> <HEAD> <TITLE></TITLE> <style>body{ font-size: 12px;font-family: verdana, arial, helvetica, sans-serif;}</style> </HEAD> <BODY><p><b>hello world</b></p><p><br><b>yo</b> <a href=\"http://google.com\">googlez</a></p></BODY> </HTML> ";

        String result = br2nl(html);
        System.out.println(result);
    }
}</code>
Copier après la connexion

Sortie :

hello world
yo googlez
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal