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:
Parsen Sie Ihre HTML-Zeichenfolge mit Jsoup:
<code class="java">Document doc = Jsoup.parse(htmlString);</code>
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>
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>
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!