使用Jsoup 將HTML 轉換為純文字時保留換行符
將HTML 內容轉換為純文字時,保留換行符以提高可讀性至關重要。預設情況下,Jsoup 的 text() 方法會移除換行符,這可能會破壞輸出的格式。幸運的是,有一種解決方法可以利用 getWholeText() 方法來保留換行符。
使用 getWholeText() 來保留換行符
Jsoup 中的 getWholeText() 方法傳回文件的整個文字內容,包括換行符。要使用此方法,您可以按照以下步驟操作:
使用Jsoup 解析HTML 字串:
<code class="java">Document doc = Jsoup.parse(htmlString);</code>
迭代文件的元素元素並擷取文字:
<code class="java">for (Element element : doc.getAllElements()) { text += element.getWholeText().trim(); if (element.tagName().equals("br")) { text += "\n"; } }</code>
透過在每個
標籤後面加上換行符,您可以確保在輸出文字中保留換行符。
進階解決方案:br2nl() 方法
上述解決方案有效,但可以透過合併以下實用方法來改進:
<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>
此方法不僅保留行從
和
中斷標籤,還確保保留原始HTML 中的換行符。它透過選擇性地在 HTML 元素前面新增換行符,然後執行正規表示式替換以將轉義的換行符替換為實際的換行符來實現此目的。
以上是使用 Jsoup 將 HTML 轉換為純文字時如何保留換行符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!