jsoup只剥离html标签而不是新行字符?
我在Java中有以下内容,我只想删除html标签而不是新行字符
test1 test2 test 3
//line 1 test4
//line 2
如果我在文本丰富的编辑器中打开上面的内容,第1行和第2行将显示在不同的行中(不显示
标记)。但是在记事本内容中会显示
标记。 删除我使用的所有html标签
Jsoup.parse(aboveContent).text()
它删除所有html字符。 但它在记事本中显示了同一行中的所有第1行和第2行。 不知何故,Jsoup还删除了换行符。
我尝试了什么: –
我也尝试用\r\n
替换
,然后删除html标签
Jsoup.parse(contentWith\r\n-Insteadof-Tag ).text()
但仍然Jsoup删除行尾字符(如在调试器中我可以看到line1和line2)在同一行。
我如何让Jsoup只删除html字符而不是新行字符?
您得到一行,因为text()
删除所有空白字符。 但是你可以使用StringBuilder
并在那里插入每一行:
final String html = "test1 test2 test 3
" + "test4
"; Document doc = Jsoup.parse(html); StringBuilder sb = new StringBuilder(); for( Element element : doc.select("p") ) { /* * element.text() returns the text of this element (= without tags). */ sb.append(element.text()).append('\n'); } System.out.println(sb.toString().trim());
输出:
test1 test2 test 3 test4
你也可以这样做:
public static String cleanNoMarkup(String input) { final Document.OutputSettings outputSettings = new Document.OutputSettings().prettyPrint(false); String output = Jsoup.clean(input, "", Whitelist.none(), outputSettings); return output; }
这里重要的事情是:1。Whitelist.none() – 所以不允许标记2..prettyPrint(false) – 所以不删除换行符