77.12. 使用带有 XPathBuilder 的 Saxon


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

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

  • 使用自定义 XPathFactory
  • 使用 ObjectModel

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

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

这个单元测试演示了如何使用 Saxon :

Camel 使用非默认 XPathFactory,例如:

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
Copy to Clipboard Toggle word wrap

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

-Djavax.xml.xpath.XPathFactory=org.apache.xpath.jaxp.XPathFactoryImpl
Copy to Clipboard Toggle word wrap

77.12.2. 从 XML DSL 启用 Saxon

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

引用自定义工厂:

<xpath factoryRef="saxonFactory" resultType="java.lang.String">current-dateTime()</xpath>
Copy to Clipboard Toggle word wrap

使用工厂声明 bean:

<bean id="saxonFactory" class="net.sf.saxon.xpath.XPathFactoryImpl"/>
Copy to Clipboard Toggle word wrap

指定对象模型:

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

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

<xpath saxon="true" resultType="java.lang.String">current-dateTime()</xpath>
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat