簡體   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