Heim > Java > javaLernprogramm > Wie bleiben Zeilenumbrüche beim Konvertieren von HTML in Text mit Jsoup erhalten?

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

DDD
Freigeben: 2024-10-31 20:37:29
Original
256 Leute haben es durchsucht

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

Zeilenumbrüche bei der HTML-zu-Text-Konvertierung mit Jsoup beibehalten

Beim Konvertieren von HTML in einfachen Text mit Jsoup können Zeilenumbrüche beibehalten werden entscheidend für die Aufrechterhaltung der Lesbarkeit und Struktur der Ausgabe. Standardmäßig behält die text()-Methode von jsoup keine im HTML-Code vorhandenen Zeilenumbrüche bei.

Lösung:

Um Zeilenumbrüche effektiv beizubehalten, verwenden Sie br2nl() Methode, die die folgenden Verbesserungen beinhaltet:

  1. Vorhandene Zeilenumbrüche beibehalten: Wenn der ursprüngliche HTML-Code Zeilenumbrüche (n) enthält, bleiben diese in der Ausgabe erhalten.
  2. Konvertieren
    und

    Tags: Zeilenumbrüche werden durch Anhängen von n an den Inhalt von
    eingeführt. Tags. Zusätzlich wird dem Inhalt von

    nn vorangestellt. Tags zur Kennzeichnung neuer Absätze.

  3. Nachbearbeitung: Der geänderte HTML-Code wird gerendert und alle verbleibenden maskierten Zeilenumbrüche (\n) werden in tatsächliche Zeilenumbrüche (n) konvertiert. Um die ordnungsgemäße Verarbeitung anderer Sonderzeichen sicherzustellen, wird die resultierende Zeichenfolge mit Jsoup.clean() bereinigt.

Verwendung:

<code class="java">import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class LineBreakPreserver {

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

    public static void main(String[] args) {
        String html = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN \">" +
                "<HTML> <HEAD> <TITLE></TITLE> <style>body{ font-size: 12px;font-family: verdana, arial, helvetica, sans-serif;}</style> </HEAD> <BODY><p><b>hello world</b></p><p><br><b>yo</b> <a href=\"http://google.com\">googlez</a></p></BODY> </HTML> ";

        String result = br2nl(html);
        System.out.println(result);
    }
}</code>
Nach dem Login kopieren

Ausgabe:

hello world
yo googlez
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie bleiben Zeilenumbrüche beim Konvertieren von HTML in 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