【问题标题】:DOM4J XPath 2.0DOM4J XPath 2.0
【发布时间】:2020-08-31 01:38:44
【问题描述】:

我看过很多帖子说 DOM4J 只支持 XPath 1.0。我有一些使用 DOM4J 的实用程序现在被要求支持一些使用 XPath 2.0 功能的动态参数。有人知道如何扩展 DOM4J 以支持 XPath 2.0 的示例吗?可能与它一起使用 SAXON(再次任何示例或文档)?

【问题讨论】:

    标签: xpath saxon dom4j


    【解决方案1】:

    您可以针对 DOM4J 文档树使用 Saxon XPath 引擎。如果您想要“开箱即用”此功能,则需要 Saxon-PE 或 -EE 许可证;但是如果你想自己构建它,源代码是可用的。

    您可以使用 JAXP XPath 接口(只需提供 JAXP 要求 Object 的 DOM4J 文档节点),或使用 Saxon 的 s9api 接口:创建一个 net.sf.saxon.s9api.DocumentBuilder 并调用其 wrap() 方法来包装DOM4J 文档为XdmNode。查询结果将以XdmNode 对象的形式返回; XdmNode.getExternalNode() 将返回底层 DOM4J Node

    【讨论】:

      【解决方案2】:

      在线示例位于 Saxon 存储库中,此处为 Saxon 9.7 HE 的 https://saxonica.plan.io/projects/saxon/repository/he/revisions/master/entry/latest9.7/samples/java/he/S9APIExamples.java#L970,因为它是“仅”支持 XPath 2.0 的最新版本,而较新的版本(9.8 及更高版本)将支持 XPath 3.1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多