我想将
HTML文档作为
XML查询(例如使用XPath),因此我需要通过某种形式的HTML清理程序传递HTML.
有没有一个Java HTML解析器保留原始源字符串的索引,所以我可以找到一个节点并修改原始字符串的正确部分?
干杯.
解决方法
这听起来像是杰里科几乎完全是你想要的.它是一个强大的HTML解析器,专门用于对源文档进行非侵入式修改.
虽然它不与DOM,SAX或StAX接口一起使用,但它具有与这些标准相似的自定义API,您应该能够很容易地将您的方法适应于这些标准,或者在任何您正在使用的任何内容之间编写适配器杰里科.例如,您可以使用Jaxen对Jericho文档进行XPath查询 – 参见this blog entry示例.
Jericho对每个元素都有begin和end属性,甚至对于元素的一部分,如标签名称甚至属性名称,所以您可以使用该信息自己编辑文档,但是Jericho真正发现的是OutputDocument类,它允许您可以通过使用与您的查询匹配的Jericho元素调用适当的方法来直接指定替换,而不必在其上显式调用getBegin()和getEnd(),并将其传递给某些替换方法.