对java不严格的xpath

时间:2008-10-28 15:39:08

标签: java xpath

你知道java的任何不严格的xpath吗? (我希望它不检查dtd和架构)如果它不关心正确的xml会很酷。

2 个答案:

答案 0 :(得分:1)

您不需要将有效的XML架构为使用XPath。对于格式不正确的XML,我认为您有两种选择:

  • 从文件生成有效的DOM树。建议通过JTidy或TagSoup吸取文件。完成后,您可以正常使用XPath。
  • 生成一些其他树形模型,然后使用自定义Navigator for Jaxen的XPath。 (Jaxen允许您在任何您想要的模型上使用XPath。)

答案 1 :(得分:0)

好的,首先,“正确的xml”可以用两种方式解释。如果你的意思是“非格式”(缺少尖括号,重叠元素等),那么xpath的任何版本都不会对它有用。使用某种正则表达式会更好。如果您的XML格式不正确,我希望您能够了解它的格式是否合理,否则您无法随心所欲地使用它。

如果您实际上意味着“无效”,这仅仅意味着它不对模式或DTD进行验证,那么您可以使用与“local-name()”函数进行比较的谓词。例如,如果要查找“/ foo / bar”元素,忽略模式,那么您的xpath将如下所示:

/*[local-name()='foo']/*[local-name()='bar']