Jtidy解析脚本时候出现StringIndexOutOfBoundsException异常问题
问题描述:
最近在做网页结构化信息抽取,用到了JTidy和xslt。当在处理一些包含很多脚本的页面时候,出现了,JTidy去脏失败,提示标题中的异常。
最后发现,问题出现在解析脚本的时候因为一些脚本里面不规范的内容,导致不能判断结束造成了上面的异常出现。
解决方法:
最初的时候想通过修改JTidy的源码来解决这个问题,但是后来做着发现可行性不高,一个是修改这个源码可能会带来其它的问题。另外一个,还要花长时间去看源码。
所以,最终还是选择了采用预处理的方式来进行处理删除掉脚本。
代码
/** * Process remarks strictly flag. * If <code>true</code>, remarks are not terminated by ---$gt; * or --!$gt;, i.e. more than two dashes. If <code>false</code>, * a more lax (and closer to typical browser handling) remark parsing * is used. * Default <code>true</code>. */
在默认情况下,htmlparser解析是按严格的html标准解析,所以当碰到不标准的标签有可能出错,
当把以上这两个参数改变以后,htmlparser解析不再严格,能应对所有可能出现的情况。