假设我有一个div:
<div>
This is a paragraph
written by someone
on the internet.
</div>
问题在于,当JSoup解析它时,它将所有内容放在一行上,这样当我调用text()时,它会这样读取:
This is a paragraphwritten by someoneon the internet.
现在,我意识到这不是真正的JSoup问题,因为实际的html不包含空格。但是,有没有办法使用JSoup(也许是一些覆盖或者可能是一个我没见过的选项),所以当它解析它会在行之间添加一个空格?我想它一定是可能的(因为我可以检查Chrome中的元素并取消选择自动换行并获得我想要的东西)但我不确定JSoup是否可以做到这一点。
有什么想法吗?
答案 0 :(得分:3)
您能提供代码的完整示例吗?您使用的是什么版本的jsoup?
在当前版本(1.6.1)中,此代码:
Document doc = Jsoup.parse("<div>\n" +
"This is a paragraph\n" +
"written by someone\n" +
"on the internet.\n" +
"</div>");
System.out.println(doc.text());
产地:
This is a paragraph written by someone on the internet.
即,\n
(和\r\n
等)将空格转换为文本。
如果我可以复制,我很乐意修复或改进它。)
答案 1 :(得分:2)
以下文章展示了如何获得包括换行符在内的所有内容
Removing HTML entities while preserving line breaks with JSoup
以下答案和评论还有另一种方式(阅读评论)
Remove HTML tags from a String
如果您检查所有答案和评论
,这个还有另一种方法How do I preserve line breaks when using jsoup to convert html to plain text?