Heim  >  Artikel  >  Java  >  Wie kann ich Zeilenumbrüche beim Konvertieren von HTML in einfachen Text mit Jsoup beibehalten?

Wie kann ich Zeilenumbrüche beim Konvertieren von HTML in einfachen Text mit Jsoup beibehalten?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 23:24:30914Durchsuche

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

Beibehalten von Zeilenumbrüchen mit Jsoup: Eine umfassende Anleitung

Beim Konvertieren von HTML in einfachen Text ist das Beibehalten von Zeilenumbrüchen für die Aufrechterhaltung der Lesbarkeit von entscheidender Bedeutung. Jsoup, eine beliebte Java-HTML-Parser-Bibliothek, bietet eine effiziente Möglichkeit, Text aus HTML zu extrahieren und dabei seine Struktur beizubehalten.

In diesem Leitfaden werden wir uns mit der spezifischen Frage der Beibehaltung von Zeilenumbrüchen bei der Verwendung von Jsoup.parse von Jsoup befassen (str).text()-Methode. Diese Methode extrahiert den Textinhalt aus HTML, behält jedoch keine Zeilenumbrüche nativ bei.

Verwendung von TextNode.getWholeText()

Zunächst untersuchte die Frage die Möglichkeit von unter Verwendung der TextNode.getWholeText()-Methode von Jsoup. Dieser Ansatz erwies sich jedoch als unwirksam, da er keine Zeilenumbrüche im Kontext von HTML-Tags verarbeitet.

Die effektive Lösung

Die Lösung zur Beibehaltung von Zeilenumbrüchen liegt in a umfassenderer Ansatz, der sowohl die Vor- als auch die Nachbearbeitung des HTML-Inhalts vor dem Extrahieren des Textes umfasst.

Das vorgestellte Code-Snippet führt die folgenden Schritte aus:

  1. Parst den HTML-String mit Jsoup.
  2. Deaktiviert HTML Pretty Printing, um sicherzustellen, dass Zeilenumbrüche erhalten bleiben.
  3. Fügt Zeilenumbrüche (n) am Ende von
    hinzu. Tags und vor

    Tags.

  4. Ersetzt die Sequenz n durch tatsächliche Zeilenumbrüche.
  5. Reinigt den geänderten HTML-Code, um alle verbleibenden Formatierungen oder Tags zu entfernen.

Implementierung

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

Erfüllte Anforderungen

Die bereitgestellte Lösung erfüllt die folgenden Anforderungen:

  • Behält vorhandene Zeilenumbrüche (n) im HTML bei.
  • Konvertiert
    und

    Tags in Zeilenumbrüche umwandeln.

  • Entfernt alle unerwünschten Formatierungen oder Tags im resultierenden Text.

Durch die Implementierung dieser Lösung können Sie Zeilenumbrüche effektiv beibehalten, wenn Sie HTML mit Jsoup in einfachen Text konvertieren. Gewährleistung genauer und lesbarer Ergebnisse.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeilenumbrüche beim Konvertieren von HTML in einfachen Text mit Jsoup beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn