Rumah  >  Artikel  >  Java  >  Bagaimanakah Saya Boleh Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks Biasa Menggunakan Jsoup?

Bagaimanakah Saya Boleh Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks Biasa Menggunakan Jsoup?

Barbara Streisand
Barbara Streisandasal
2024-10-30 23:24:30914semak imbas

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

Memelihara Pemisah Baris Menggunakan Jsoup: Panduan Komprehensif

Apabila menukar HTML kepada teks biasa, mengekalkan pemisah baris adalah penting untuk mengekalkan kebolehbacaan. Jsoup, pustaka penghurai HTML Java yang popular, menyediakan cara yang cekap untuk mengekstrak teks daripada HTML sambil mengekalkan strukturnya.

Dalam panduan ini, kami akan menyelidiki isu khusus untuk mengekalkan pemisah baris apabila menggunakan Jsoup.parse Jsoup (str).teks() kaedah. Kaedah ini mengekstrak kandungan teks daripada HTML, tetapi ia tidak mengekalkan pemisah baris secara asli.

Menggunakan TextNode.getWholeText()

Pada mulanya, soalan meneroka kemungkinan menggunakan kaedah TextNode.getWholeText() Jsoup. Walau bagaimanapun, pendekatan ini terbukti tidak berkesan kerana ia tidak mengendalikan pemisah baris dalam konteks teg HTML.

Penyelesaian Berkesan

Penyelesaian untuk mengekalkan pemisah baris terletak pada pendekatan yang lebih komprehensif yang melibatkan kedua-dua pra dan pasca pemprosesan kandungan HTML sebelum mengekstrak teks.

Coretan kod yang dibentangkan mengambil langkah berikut:

  1. Menghuraikan rentetan HTML menggunakan Jsoup.
  2. Melumpuhkan pencetakan cantik HTML untuk memastikan pemisah baris dikekalkan.
  3. Menambah pemisah baris (n) pada penghujung
    tag dan sebelum

    teg.

  4. Menggantikan jujukan n dengan baris baharu sebenar.
  5. Membersihkan HTML yang diubah suai untuk mengalih keluar sebarang pemformatan atau teg yang tinggal.

Pelaksanaan

<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));//makes html() preserve linebreaks and spacing
    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>

Keperluan Dipuaskan

Penyelesaian yang disediakan memenuhi keperluan berikut:

  • Memelihara baris baharu (n) sedia ada dalam HTML.
  • Tukar
    dan

    teg ke dalam baris baharu.

  • Mengalih keluar sebarang pemformatan atau teg yang tidak diingini dalam teks yang terhasil.

Dengan melaksanakan penyelesaian ini, anda boleh mengekalkan pemisah baris dengan berkesan apabila menukar HTML kepada teks biasa menggunakan Jsoup, memastikan hasil yang tepat dan boleh dibaca.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks Biasa Menggunakan Jsoup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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