如何解析任意HTML

时间:2015-10-02 12:49:59

标签: java jericho-html-parser

我正在使用jericho来清理html并且效果很好。除了在一种情况下,我无法弄清楚。我想完全删除任何脚本和脚本内容。现在我正在删除脚本标记,但保留了实际的脚本内容。

所以目前我创建一个Source对象并执行fullSequentialParse。然后我创建一个OutputDocument并循环遍历每个标记。

当我找到“脚本”标签时,我只想用“”替换整个东西。

有什么想法吗?

TIA

2 个答案:

答案 0 :(得分:1)

我不熟悉Jericho,但是它有能力在树上工作,非常类似于DOM树,所以你可以删除script 元素而不仅仅是标记的。 (如果你有一个巨大的HTML,这可能不是最佳的。)

如果没有,那么你可以采用SAX方式。请记住开始script标记,当您到达结束标记时,您可以删除其中的所有内容。

答案 1 :(得分:-1)

简单有效的方法 -

  1. 遍历以逐个访问脚本标记。
  2. 对于每个脚本标记,您可以获得其下一个结束标记(使用for循环)。
  3. 获取开始标记和结束标记的位置(整数值)。
  4. 从源对象中删除这些行。
  5. 替换源文件。 (只需创建一个新文件并保存在同一个文件夹中,它就会覆盖)
  6. A2A :)