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?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 01:15:29162Durchsuche

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

Beibehalten von Zeilenumbrüchen mit der Konvertierung von HTML in einfachen Text von Jsoup

Jsoup bietet robuste Tools zum Bearbeiten von HTML, aber die Standardkonvertierung von HTML in einfachen Text ist vorgesehen Text kann Zeilenumbrüche zusammenführen und sie als fortlaufenden Text darstellen. Um diese Umbrüche beizubehalten, können Sie Jsoup wie folgt verwenden:

Eine benutzerdefinierte Funktion zur Erhaltung von Zeilenumbrüchen:

Das bereitgestellte Java-Code-Snippet führt eine benutzerdefinierte Funktion ein, noTags, die text() von Jsoup nutzt. Methode zum Entfernen von HTML-Tags aus Eingabe-HTML. Es werden jedoch keine Zeilenumbrüche beibehalten.

Erweitern der Funktion durch Ganztextextraktion:

Die JsonNode-Klasse von Jsoup bietet eine getWholeText()-Methode, die den Textinhalt unter Berücksichtigung von Zeilenumbrüchen extrahiert. Mit dieser Methode kann die noTags-Funktion verbessert werden:

<code class="java">public String noTags(String str) {
    return Jsoup.parse(str).wholeText();
}</code>

Implementierung der Zeilenumbrucherhaltung:

Für eine verfeinerte Lösung, die Zeilenumbrüche beibehält:

<code class="java">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 <br> tags
    document.select("br").append("\n");
    // Prepend line breaks for <p> 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));
}</code>

Diese benutzerdefinierte Funktion stellt sicher, dass Zeilenumbrüche beibehalten werden und an der gewünschten Ausgabe ausgerichtet sind. Es erfüllt zwei wichtige Anforderungen:

  1. Originalzeilenumbrüche (n) bleiben erhalten.

  2. und

    Tags werden in Zeilenumbrüche (n) umgewandelt.

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