我有一个样本代码如下.
String sample = "<html>
<head>
</head>
<body>
This is a sample on parsing HTML body using jsoup
This is a sample on parsing HTML body using jsoup
</body>
</html>";
Document doc = Jsoup.parse(sample);
String output = doc.body().text();
输出为
This is a sample on parsing HTML body using jsoup This is a sample on `parsing HTML body using jsoup`
但我希望输出为
This is a sample on parsing HTML body using jsoup
This is a sample on parsing HTML body using jsoup
怎样解析它才能得到这个输出呢?或者在Java中有别的方法吗?
2条答案
按热度按时间xv8emn3q1#
您可以禁用文档的漂亮打印以获得您想要的输出,但是您还必须将
.text()
更改为.html()
。4uqofj5v2#
HTML规范要求将多个空白字符折叠成单个空白字符。因此,在解析示例时,解析器会正确地删除多余的空白字符。
我不认为你可以改变解析器的工作方式。你可以添加一个预处理步骤,用不可断空格()替换多个空格,这样就不会折叠。当然,副作用是这些空格是不可断的(如果你真的只想使用呈现的文本,就像doc.body().text())。