Jsoup 数据-* 属性白名单清理工具

问题描述 投票:0回答:2

在序列化(json)和ajax之前使用jsoup白名单清理程序来清理html。

如何允许 html 中的所有 data-* 属性,而不必显式地将每个实例添加到白名单中?

html json jsoup whitelist
2个回答
1
投票

我认为没有内置函数可以实现这一点。不过,您可以做的是,获取 html 字符串,搜索每个数据属性(正则表达式是一个好主意)并将它们显式添加到循环中。


0
投票

想必这个选项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);
© www.soinside.com 2019 - 2024. All rights reserved.