HtmlStreamRenderer renderer = HtmlStreamRenderer.create(sb,
new Handler<IOException>()
{
public void handle(IOException ex)
{
Throwables.propagate(ex); // System.out suppresses
// IOExceptions
}
},
new Handler<String>()
{
public void handle(String x)
{
System.err.println(x);
}
});
AntisamyHtmlChangeListener listener = new AntisamyHtmlChangeListener();
ErrorList list = new ErrorList();
HtmlSanitizer.sanitize(content, p.apply(renderer, listener, list));
对于给定内容,HtmlSanitizer会删除它发现与给定策略不兼容的字符串(不允许使用正则表达式或属性不匹配)。
实施例: 给定内容:请点击:&#34;&lt; \ a src =&#34; http:/abc.com" &GT;&#34;
政策:允许网址仅以https开头。
结果内容:请点击:
我们可以看到整个锚标记已被删除,我们作为参数传递的错误列表会捕获此信息(它报告标记中存在问题)但不会导致导致问题的属性值。
有没有办法可以捕获src属性的值,即&#34; http:/abc.com/xyz.pdf" HtmlSanitizer已删除?