使用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>
此自訂函數可確保保留換行符,並與所需的輸出對齊。它滿足兩個關鍵要求:
標籤被轉換為換行符 (n)。
以上是使用 Jsoup 將 HTML 轉換為純文字時如何保留換行符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!