答案 1
你如何Document
用 Jsoup 加载/解析你的?如果你使用parse()
or connect().get()
jsoup 会自动格式化你的 html (插入html
,body
和head
标签)。这可以确保您始终拥有完整的 Html 文档 - 即使输入不完整。
假设您只想清理输入(没有进一步处理),您应该使用clean()
前面列出的方法。
示例 1 - 使用 parse()
final String html = "<b>a</b>";
System.out.println(Jsoup.parse(html));
输出:
<html>
<head></head>
<body>
<b>a</b>
</body>
</html>
输入html完成,以确保您拥有完整的文档。
示例 2 - 使用 clean()
final String html = "<b>a</b>";
System.out.println(Jsoup.clean("<b>a</b>", Whitelist.relaxed()));
输出:
<b>a</b>
输入 html 已清理,仅此而已。
文档:
答案 2
该方法replaceWith()
完全符合您的需要:
例子:
final String html = "<b><script>your script here</script></b>";
Document doc = Jsoup.parse(html);
for( Element element : doc.select("script") )
{
element.replaceWith(TextNode.createFromEncoded(element.toString(), null));
}
System.out.println(doc);
输出:
<html>
<head></head>
<body>
<b><script>your script here</script></b>
</body>
</html>
或仅身体:
System.out.println(doc.body().html());
输出:
<b><script>your script here</script></b>
文档:
答案 3
是的,这样做prettyPrint()
的方法Jsoup.OutputSettings
。
例子:
final String html = "<p>your html here</p>";
Document doc = Jsoup.parse(html);
doc.outputSettings().prettyPrint(false);
System.out.println(doc);
注意:如果outputSettings()
方法不可用,请更新 Jsoup。
输出:
<html><head></head><body><p>your html here</p></body></html>
文档:
答案 4 (无项目符号)
不!Jsoup 是目前最好和最强大的Html 库之一!