繁体   English   中英

为什么JSoup删除元素ID?

[英]Why does JSoup remove element IDs?

我正在使用JSoup清理一些不受信任的HTML。 我发现如果我打电话

String html = "<div id='foo'><script type='text/javascript'>alert('hello');</script></div>";
String cleanedHtml = Jsoup.clean(html, Whitelist.relaxed());

此时cleanedHtml

<div><div>

因此<script>标记已被正确删除,但神秘地是, <div>id属性也已删除。 有什么充分的理由为什么应该删除它,或者它是一个错误?

默认情况下, id属性被删除; 将其添加为允许的属性:

Whitelist whitelist = Whitelist.relaxed().addAttributes("div", "id");
System.out.println(Jsoup.clean(html, whitelist));

=> <div id="foo"></div>

是虫子吗? 不是AFAIC; 在源中。 IMO有文档错误,但是。

是否有“任何充分的理由”将其删除? 不确定那一个,但是像这样的属性不是结构性的:删除它不会改变DOM。 这就是白名单的内容-它们明确允许,并且必须进行整理以满足您的确切需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM