Memelihara Pemisah Baris Apabila Menukar HTML kepada Teks Biasa dengan Jsoup
Apabila menukar kandungan HTML kepada teks biasa, adalah penting untuk mengekalkan pemisah baris untuk kebolehbacaan . Secara lalai, kaedah text() Jsoup menjalurkan pemisah baris, yang berpotensi mengganggu pemformatan output anda. Nasib baik, terdapat penyelesaian yang memanfaatkan kaedah getWholeText() untuk mengekalkan pemisah baris.
Menggunakan getWholeText() untuk Mengekalkan Pemisah Baris
Kaedah getWholeText() dalam Jsoup mengembalikan keseluruhan kandungan teks dokumen, termasuk pemisah baris. Untuk menggunakan kaedah ini, anda boleh mengikuti langkah berikut:
Hilang rentetan HTML anda menggunakan Jsoup:
<code class="java">Document doc = Jsoup.parse(htmlString);</code>
Lelaran pada elemen dokumen dan ekstrak teks:
<code class="java">for (Element element : doc.getAllElements()) { text += element.getWholeText().trim(); if (element.tagName().equals("br")) { text += "\n"; } }</code>
Dengan menambahkan pemisah baris selepas setiap teg
, anda boleh memastikan pemisah baris dikekalkan dalam teks output anda.
Penyelesaian Lanjutan: Kaedah br2nl()
Penyelesaian di atas berfungsi dengan berkesan tetapi boleh diperbaiki dengan menggabungkan kaedah utiliti berikut:
<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>
Kaedah ini bukan sahaja mengekalkan talian rehat daripada
dan
tag tetapi juga memastikan bahawa baris baharu dalam HTML asal dikekalkan. Ia melakukan ini dengan menambah dan menambahkan pemisah baris secara selektif pada elemen HTML dan kemudian melakukan penggantian regex untuk menggantikan pemisah baris yang terlepas dengan baris baharu yang sebenar.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks Biasa dengan Jsoup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!