清理混合类型<script>标记</script>

时间:2010-04-26 12:39:16

标签: java html-sanitizing cyberneko

我正在使用cyberneko和xerces清理HTML。 但是,一些$#@@!@@网站仍然使用BOTH

<script>...</script> and <script.../> 

所以会发生什么:给定

<script..../> <div> Some Text </div> <script> scripting stuff </script> , 

neko将以上所有行解析为脚本,所以我得到了

<script..../> &lt div &gt Some Text &lt/div &gt &lt script &gt scripting stuff </script> , 

然后我失去了所有的内容:(

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用&lt; script /&gt;在HTML中是非法的。它在xml中是合法的。我不知道为什么有些人仍然使用xml方式来编写html,但这是错误的,它打破了大多数解析器(如SO ..) - 设计。

另一件需要注意的事情 - 如果你使用xml解析器/ dom4j解析器或依赖它的任何其他东西,请确保你没有通过xml解析器传递你的字符串,然后是一个html解析器 - 这将破坏一切。 / p>