"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je conserver les sauts de ligne lors de la conversion de HTML en texte brut avec Jsoup ?

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

Publié le 2024-11-07
Parcourir:988

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 conserver ces sauts de ligne, 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. En utilisant cette méthode, la fonction noTags peut être améliorée :

public String noTags(String str) {
    return Jsoup.parse(str).wholeText();
}

Mise en œuvre de la préservation des sauts de ligne :

Pour une solution plus raffinée qui préserve les sauts de ligne :

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

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).

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3