我有以下代码:
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>
,我如何在结果输出中换行?
发布于 2011-05-17 21:26:41
使用
Jsoup.parse("A\nB").text();
你有输出
"A B"
而不是
A
B
为此,我使用:
descrizione = Jsoup.parse(html.replaceAll("(?i)<br[^>]*>", "br2n")).text();
text = descrizione.replaceAll("br2n", "\n");
发布于 2013-04-24 00:46:07
Jsoup.clean(unsafeString, "", Whitelist.none(), new OutputSettings().prettyPrint(false));
我们在这里使用这种方法:
public static String clean(String bodyHtml,
String baseUri,
Whitelist whitelist,
Document.OutputSettings outputSettings)
通过传递Whitelist.none()
,我们可以确保所有的超文本标记语言都被移除。
通过传递new OutputSettings().prettyPrint(false)
,我们可以确保输出不会重新格式化,并且会保留换行符。
发布于 2018-05-17 22:04:41
在JSoupv1.11.2上,我们现在可以使用Element.wholeText()
。
示例代码:
String cleanString = Jsoup.parse(htmlString).wholeText();
user121196's
answer仍然有效。但是wholeText()
保留了文本的对齐方式。
https://stackoverflow.com/questions/5640334
复制相似问题