在序列化(json)和ajax之前使用jsoup白名单清理程序来清理html。
如何允许 html 中的所有 data-* 属性,而不必显式地将每个实例添加到白名单中?
我认为没有内置函数可以实现这一点。不过,您可以做的是,获取 html 字符串,搜索每个数据属性(正则表达式是一个好主意)并将它们显式添加到循环中。
想必这个选项10年前还不存在。这就是我解决这个问题的方法:
Safelist safelist = new Safelist() {
public boolean isSafeAttribute(String tagName, Element el, Attribute attr) {
if (attr.getKey().startsWith("data-")) {
return true;
}
return super.isSafeAttribute(tagName, el, attr);
}
};
safelist.addTags(...);
String html = "...";
html = Jsoup.clean(html, safelist);