首頁 >Java >java教程 >使用 Jsoup 將 HTML 轉換為純文字時如何保留換行符號?

使用 Jsoup 將 HTML 轉換為純文字時如何保留換行符號?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-31 01:15:29246瀏覽

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

使用Jsoup 的Html 到純文字轉換來保留換行符

Jsoup 提供了強大的HTML到純文字的轉換文字可以合併換行符,將它們呈現為連續文字。要保留這些換行符,請按照以下方式使用Jsoup:

用於保留換行符的自訂函數:

提供的Java 程式碼片段引入了一個自訂函數noTags,它利用Jsoup 的text()從輸入HTML 中移除HTML 標籤的方法。但是,它不維護換行符。

透過全文字擷取增強功能:

Jsoup 的 JsonNode 類別提供了 getWholeText() 方法,該方法可以在考慮換行符的同時擷取文字內容。使用此方法,可以改進noTags 功能:

<code class="java">public String noTags(String str) {
    return Jsoup.parse(str).wholeText();
}</code>

實現換行符保留:

有關保留換行符的更精細的解決方案:

<code class="java">public static String br2nl(String html) {
    if (html == null)
        return html;
    Document document = Jsoup.parse(html);
    // Suppress pretty printing to preserve line breaks and spacing
    document.outputSettings(new Document.OutputSettings().prettyPrint(false));
    // Append line breaks for <br> tags
    document.select("br").append("\n");
    // Prepend line breaks for <p> tags
    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>

此自訂函數可確保保留換行符,並與所需的輸出對齊。它滿足兩個關鍵要求:

  1. 保留原始換行符 (n)。

  2. 標籤被轉換為換行符 (n)。

以上是使用 Jsoup 將 HTML 轉換為純文字時如何保留換行符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn