JSoup元素WholeText消除间距

时间:2019-06-18 13:15:49

标签: jsoup

我正在使用以下代码使用JSoup解析HTML:

Jsoup.parse(html).wholeText()

我的html示例将包含如下文本:

<p>some text</p><br /><br>later

但是,JSoup的输出始终为:

some textlater

我想要的输出是这样的:

some text

later

(请注意,该行在“某些文本”和“稍后”之后返回)

如果要保留间距,是否应该使用其他方法而不是WholeText?我确实发现了以下类似的stackoverflow问题:
How do I preserve line breaks when using jsoup to convert html to plain text?

但是,该问题的问题在于所有用户都希望使用字符串替换或正则表达式来查找br或其他特定标签。我正在寻找更通用的东西(例如,一个HTML解析器,它在保留换行符和其他空格的同时删除html标签-如果有更好的Java库,也不必是jsoup。)

1 个答案:

答案 0 :(得分:0)

您可以使用:

Document doc = Jsoup.parse(html);

它将把您的字符串转换成html节点进行操作 然后使用

doc.outputSettings().indentAmount(0).prettyPrint(false);

以保留空间和样式。

然后将html返回字符串

doc.body().html().toString();