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:
Tags:
Zeilenumbrüche werden durch Anhängen von n an den Inhalt vonnn vorangestellt. Tags zur Kennzeichnung neuer Absätze.
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>
Ausgabe:
hello world yo googlez
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!