Maison  >  Article  >  Java  >  Comment puis-je conserver les sauts de ligne lors de la conversion de HTML en texte brut à l'aide de Jsoup ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 23:24:30914parcourir

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

Préserver les sauts de ligne à l'aide de Jsoup : un guide complet

Lors de la conversion de HTML en texte brut, la préservation des sauts de ligne est cruciale pour maintenir la lisibilité. Jsoup, une bibliothèque d'analyseurs HTML Java populaire, fournit un moyen efficace d'extraire du texte du HTML tout en conservant sa structure.

Dans ce guide, nous aborderons le problème spécifique de la préservation des sauts de ligne lors de l'utilisation de Jsoup.parse de Jsoup. Méthode (str).text(). Cette méthode extrait le contenu du texte du HTML, mais elle ne préserve pas nativement les sauts de ligne.

Utilisation de TextNode.getWholeText()

Initialement, la question explorait la possibilité de en utilisant la méthode TextNode.getWholeText() de Jsoup. Cependant, cette approche s'est avérée inefficace car elle ne gère pas les sauts de ligne dans le contexte des balises HTML.

La solution efficace

La solution pour préserver les sauts de ligne réside dans un approche plus complète qui implique à la fois le pré- et le post-traitement du contenu HTML avant d'extraire le texte.

L'extrait de code présenté suit les étapes suivantes :

  1. Analyse la chaîne HTML à l'aide de Jsoup.
  2. Désactive l'impression HTML pour garantir la préservation des sauts de ligne.
  3. Ajoute des sauts de ligne (n) à la fin de
    balises et avant

    balises.

  4. Remplace la séquence n par des nouvelles lignes réelles.
  5. Nettoie le code HTML modifié pour supprimer toute mise en forme ou balises restantes.

Implémentation

<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));//makes html() preserve linebreaks and spacing
    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>

Exigences satisfaites

La solution fournie répond aux exigences suivantes :

  • Préserve les nouvelles lignes existantes (n) dans le HTML.
  • Convertit
    et

    balises en nouvelles lignes.

  • Supprime tout formatage ou balise indésirable dans le texte résultant.

En implémentant cette solution, vous pouvez conserver efficacement les sauts de ligne lors de la conversion de HTML en texte brut à l'aide de Jsoup, garantissant des résultats précis et lisibles.

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!

Déclaration:
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