java使用jsoup将html转换为纯文本时,如何保留换行符?
我有以下代码:
public class NewClass {
public String noTags(String str){
return Jsoup.parse(str).text();
}
public static void main(String args[]) {
String strings="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN \">" +
"<HTML> <HEAD> <TITLE></TITLE> <style>body{ font-size: 12px;font-family: verdana, arial, helvetica, sans-serif;}</style> </HEAD> <BODY><p><b>hello world</b></p><p><br><b>yo</b> <a href=\"http://google.com\">googlez</a></p></BODY> </HTML> ";
NewClass text = new NewClass();
System.out.println((text.noTags(strings)));
}
我得到的结果是:
hello world yo googlez
但我想打破界限:
hello world
yo googlez
我已经看过了jsoup's TextNode#getWholeText(),但我不知道如何使用它
如果在我解析的标记中有一个<br>
,我如何在结果输出中获得换行符
# 1 楼答案
对于更复杂的HTML,上述解决方案都不是很有效;我能够成功地进行转换,同时通过以下方式保留换行符:
(版本1.10.3)
# 2 楼答案
使用jsoup尝试以下操作:
# 3 楼答案
与
你有输出
而不是
为此,我使用:
# 4 楼答案
保留换行符的真正解决方案应如下所示:
它满足以下要求:
# 5 楼答案
我们在这里使用这种方法:
通过传递它
Whitelist.none()
,我们确保删除所有HTML通过传递
new OutputSettings().prettyPrint(false)
,我们可以确保输出没有重新格式化,并且保留了换行符# 6 楼答案
在jsoupv1上。11.2,我们现在可以使用
Element.wholeText()
示例代码:
user121196's
answer仍然有效。但是wholeText()
保留了文本的对齐