如何解决DOM4J XPath 2.0
我看过各种文章DOM4J仅支持XPath 1.0。我有一些使用DOM4J的实用程序,现在要求它们支持使用XPath 2.0功能的一些动态参数。是否有人知道如何扩展DOM4J以支持XPath 2.0的示例?可能将SAXON与它一起使用(再次示例或文档)?
解决方法
您可以对DOM4J文档树使用Saxon XPath引擎。如果您想“开箱即用”此功能,则需要Saxon-PE或-EE许可证。但是如果您想自己构建,则源代码可用。
您可以使用JAXP XPath接口(只需在JAXP要求提供Object
的地方提供一个DOM4J文档节点),或者使用Saxon的s9api接口:创建一个net.sf.saxon.s9api.DocumentBuilder
并调用其{{ 1}}方法将DOM4J文档包装为wrap()
。查询结果将作为XdmNode
对象返回; XdmNode
将返回基础DOM4J XdmNode.getExternalNode()
。
在线示例位于Saxon存储库中,此处为https://saxonica.plan.io/projects/saxon/repository/he/revisions/master/entry/latest9.7/samples/java/he/S9APIExamples.java#L970,用于Saxon 9.7 HE,因为它是支持“仅” XPath 2.0的最新版本,而较新版本(9.8和更高版本)将支持XPath 3.1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。