Heim > Java > javaLernprogramm > Hauptteil

Wie bleiben Zeilenumbrüche beim Konvertieren von HTML in einfachen Text mit Jsoup erhalten?

DDD
Freigeben: 2024-11-03 11:02:29
Original
234 Leute haben es durchsucht

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

Beibehalten von Zeilenumbrüchen beim Konvertieren von HTML in einfachen Text mit Jsoup

Beim Konvertieren von HTML-Inhalten in einfachen Text ist es aus Gründen der Lesbarkeit wichtig, Zeilenumbrüche beizubehalten . Standardmäßig entfernt die text()-Methode von Jsoup Zeilenumbrüche, was möglicherweise die Formatierung Ihrer Ausgabe stört. Glücklicherweise gibt es eine Problemumgehung, die die Methode getWholeText() nutzt, um Zeilenumbrüche beizubehalten.

Verwendung von getWholeText() zur Beibehaltung von Zeilenumbrüchen

Die Methode getWholeText() in Jsoup gibt den gesamten Textinhalt eines Dokuments zurück, einschließlich Zeilenumbrüchen. Um diese Methode zu verwenden, können Sie die folgenden Schritte ausführen:

  1. Parsen Sie Ihre HTML-Zeichenfolge mit Jsoup:

    <code class="java">Document doc = Jsoup.parse(htmlString);</code>
    Nach dem Login kopieren
  2. Iterieren Sie über die Elemente des Dokuments und Text extrahieren:

    <code class="java">for (Element element : doc.getAllElements()) {
        text += element.getWholeText().trim();
        if (element.tagName().equals("br")) {
            text += "\n";
        }
    }</code>
    Nach dem Login kopieren

Indem Sie nach jedem
-Tag einen Zeilenumbruch hinzufügen, können Sie sicherstellen, dass Zeilenumbrüche in Ihrem Ausgabetext erhalten bleiben.

Erweiterte Lösung: br2nl()-Methode

Die obige Lösung funktioniert effektiv, kann aber durch die Einbindung der folgenden Hilfsmethode verbessert werden:

<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));
    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>
Nach dem Login kopieren

Diese Methode bewahrt nicht nur die Linie Pausen von
und

Tags, stellt aber auch sicher, dass Zeilenumbrüche im ursprünglichen HTML beibehalten werden. Dies geschieht durch selektives Voranstellen und Anhängen von Zeilenumbrüchen an HTML-Elemente und anschließendes Durchführen einer Regex-Ersetzung, um die maskierten Zeilenumbrüche durch tatsächliche Zeilenumbrüche zu ersetzen.

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage