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) – 所以不删除换行符

Interesting Posts