【问题标题】:not strict xpath for java对java来说不是严格的xpath
【发布时间】:2008-10-28 15:39:07
【问题描述】:

你知道 java 有什么不严格的 xpath 吗? (我希望它不检查 dtd 和架构)如果它不关心正确的 xml,那就太酷了。

【问题讨论】:

    标签: java xpath


    【解决方案1】:

    您无需架构有效的 XML 即可使用 XPath。对于非格式良好的 XML,那么我认为您有两种选择:

    • 从文件中生成一个有效的 DOM 树。建议通过 JTidy 或 TagSoup 吸文件。一旦你有了它,你就可以像往常一样使用 XPath。
    • 生成其他一些树形模型,然后为 Jaxen 的 XPath 使用定制的导航器。 (Jaxen 让您可以在任何您想要的模型上使用 XPath)。

    【讨论】:

      【解决方案2】:

      好的,首先,“正确的 xml”可以用几种方式解释。如果您的意思是“格式不正确”(缺少尖括号、重叠元素等),那么任何版本的 xpath 都不会对此做任何有用的事情。使用某种正则表达式会更好。如果您的 XML 格式不正确,我希望您对它的格式不正确有所了解,否则您将没有任何希望。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-21
        • 1970-01-01
        • 2017-03-17
        • 1970-01-01
        • 2019-07-16
        • 1970-01-01
        • 1970-01-01
        • 2011-03-09
        相关资源
        最近更新 更多