第 74 章 XPath
Camel 支持 XPath,允许在 DSL 中使用 Expression 或 Predicate。
例如,您可以使用 XPath 在 Message Filter 中创建一个 predicate,也可以用作 Recipient List 的表达式。
74.1. XPath 语言选项
XPath 语言支持 10 个选项,如下所示。
Name | 默认 | Java 类型 | 描述 |
---|---|---|---|
documentType |
| 文档类型类型名称,默认值为 org.w3c.dom.Document。 | |
resultType |
| 设置结果类型的类名称(输出的类型)的默认结果类型是 NodeSet。 枚举值:
| |
saxon |
| 是否使用 Saxon。 | |
factoryRef |
| 在 registry 中查询的自定义 XPathFactory 的引用。 | |
objectModel |
| 要使用的 XPath 对象模型。 | |
logNamespaces |
| 是否记录命名空间,在故障排除过程中可以帮助。 | |
headerName |
| 用作输入的标头的名称,而不是消息正文。 | |
threadSafety |
| 为 xpath 表达式返回的结果启用 thread-safety。这适用于在将 NODESET 用作结果类型时,返回的集合具有多个元素。在这种情况下,如果同时处理 NODESET,比如以并行处理模式从 Camel Splitter EIP 中处理 NODESET,则可能会出现线程安全的问题。这个选项可防止对节点进行防御副本的并发问题。如果您在应用程序中使用 camel-saxon 或 Saxon,则建议启用此选项。Saxon 具有 thread-safety 问题,可以通过打开这个选项来阻止。 | |
preCompile |
| 是否在初始化阶段启用预编译 xpath 表达式。默认情况下是否启用预编译。这可用于关闭,例如,在开始阶段需要填写编译阶段,例如,如果应用程序处于编译的时间前(例如,使用 camel-quarkus),然后加载所构建操作系统的 xpath 工厂,而不是 JVM 运行时。 | |
trim |
| 是否修剪值以删除前导和尾随空格和换行符。 |