搜索

95.12. 将 Saxon 与 XPathBuilder 搭配使用

download PDF

您需要将 camel-saxon 添加为项目的依赖项。

现在,Saxon 与 XPathBuilder 搭配使用,它可以通过多种方式完成,如下所示

  • 使用自定义 XPathFactory
  • 使用 ObjectModel

95.12.1. 使用系统属性设置自定义 XPathFactory

Camel 现在支持读取 JVM 系统属性 javax.xml.xpath.XPathFactory,可用于设置要使用的自定义 XPathFactory。

这个单元测试显示了如何使用 Saxon 完成此操作:

如果 Camel 使用非默认 XPathFactory,则 Camel 将记录在 INFO 级别,例如:

XPathBuilder  INFO  Using system property javax.xml.xpath.XPathFactory:http://saxon.sf.net/jaxp/xpath/om with value:
                    net.sf.saxon.xpath.XPathFactoryImpl when creating XPathFactory

要使用 Apache Xerces,您可以配置系统属性

-Djavax.xml.xpath.XPathFactory=org.apache.xpath.jaxp.XPathFactoryImpl

95.12.2. 从 XML DSL 启用 Saxon

与 Java DSL 类似,要从 XML DSL 启用 Saxon,您有三个选项:

引用自定义工厂:

<xpath factoryRef="saxonFactory" resultType="java.lang.String">current-dateTime()</xpath>

并使用工厂声明 bean:

<bean id="saxonFactory" class="net.sf.saxon.xpath.XPathFactoryImpl"/>

指定对象模型:

<xpath objectModel="http://saxon.sf.net/jaxp/xpath/om" resultType="java.lang.String">current-dateTime()</xpath>

推荐的方法是设置 saxon=true,如下所示:

<xpath saxon="true" resultType="java.lang.String">current-dateTime()</xpath>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.