Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks Menggunakan Jsoup?

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

DDD
DDDasal
2024-10-31 20:37:29147semak imbas

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

Memelihara Pemisah Baris dalam Penukaran HTML-ke-Teks Menggunakan Jsoup

Apabila menukar HTML kepada teks biasa menggunakan jsoup, mengekalkan pemisah baris boleh penting untuk mengekalkan kebolehbacaan dan struktur output. Secara lalai, kaedah text() jsoup tidak mengekalkan pemisah baris yang terdapat dalam kod HTML.

Penyelesaian:

Untuk mengekalkan pemisah baris dengan berkesan, gunakan br2nl() kaedah, yang menggabungkan penambahbaikan berikut:

  1. Kekalkan Baris Baharu Sedia Ada: Jika HTML asal mengandungi aksara baris baharu (n), ia disimpan dalam output.
  2. Tukar
    dan

    Teg: Pemisahan baris diperkenalkan dengan menambahkan n pada kandungan
    tag. Selain itu, nn ditambahkan pada kandungan

    teg untuk menandakan perenggan baharu.

  3. Pasca Pemprosesan: HTML yang diubah suai dipaparkan dan mana-mana baki baris baharu yang terlepas (\n) ditukar kepada baris baharu sebenar (n). Untuk memastikan pengendalian yang betul bagi aksara khas lain, rentetan yang terhasil dibersihkan menggunakan Jsoup.clean().

Penggunaan:

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

Output:

hello world
yo googlez

Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Pemisah Baris Apabila Menukar HTML kepada Teks 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