Rumah > Java > javaTutorial > Bagaimana untuk Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks Biasa dengan Jsoup?

Bagaimana untuk Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks Biasa dengan Jsoup?

DDD
Lepaskan: 2024-11-03 11:02:29
asal
408 orang telah melayarinya

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

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:

  1. Hilang rentetan HTML anda menggunakan Jsoup:

    <code class="java">Document doc = Jsoup.parse(htmlString);</code>
    Salin selepas log masuk
  2. 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>
    Salin selepas log masuk

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>
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan