gpt4 book ai didi

java - 如何使用 Jsoup 从 html 元素中删除所有内联样式和其他属性?

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:19 24 4
gpt4 key购买 nike

如何使用 Jsoup 从 html 元素中删除所有内联样式和其他属性(class、onclick)?

示例输入:

<div style="padding-top:25px;" onclick="javascript:alert('hi');">
This is a sample div <span class='sampleclass'> This is a sample span </span>
</div>

示例输出:

<div>This is a sample div <span> This is a sample span </span> </div>

我的代码(这是正确的方法还是有其他更好的方法?)

Document doc = Jsoup.parse(html);
Elements el = doc.getAllElements();
for (Element e : el) {
Attributes at = e.attributes();
for (Attribute a : at) {
e.removeAttr(a.getKey());
}
}

最佳答案

是的,一种方法确实是遍历元素并调用 removeAttr();

另一种使用 jsoup 的方法是使用 Whitelist 类(参见 docs ),它可以与 Jsoup.clean() 函数一起使用以从文档中删除任何未指定的标签或属性。

例如:

String html = "<html><head></head><body><div style='padding-top:25px;' onclick='javascript.alert('hi');'>This is a sample div <span class='sampleclass'>This is a simple span</span></div></body></html>";

Whitelist wl = Whitelist.simpleText();
wl.addTags("div", "span"); // add additional tags here as necessary
String clean = Jsoup.clean(html, wl);
System.out.println(clean);

将导致以下输出:

11-05 19:56:39.302: I/System.out(414): <div>
11-05 19:56:39.302: I/System.out(414): This is a sample div
11-05 19:56:39.302: I/System.out(414): <span>This is a simple span</span>
11-05 19:56:39.302: I/System.out(414): </div>

关于java - 如何使用 Jsoup 从 html 元素中删除所有内联样式和其他属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19784051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com