如需使用最新稳定版本,请使用 Spring Integration 7.0.4spring-doc.cadn.net.cn

使用 XPath 过滤器

此组件定义了一个基于 XPath 的消息过滤器。 内部,这些组件使用一个 MessageFilter 来包装一个 AbstractXPathMessageSelector 的实例。spring-doc.cadn.net.cn

有关更多详细信息,请参阅 Filter

要使用 XPath 过滤器,您必须至少通过声明 xpath-expression 元素或在 xpath-expression-ref 属性中引用 XPath 表达式来提供 XPath 表达式。spring-doc.cadn.net.cn

如果提供的 XPath 表达式求值为 boolean,则不需要进一步的配置参数。 然而,如果 XPath 表达式求值为 String,您应该设置 match-value 属性,以便将求值结果与该属性进行匹配。spring-doc.cadn.net.cn

match-type 有三个选项:spring-doc.cadn.net.cn

  • exact: 对应 equals 上的 java.lang.String。 底层实现使用了 StringValueTestXPathMessageSelectorspring-doc.cadn.net.cn

  • case-insensitive: 对应 equals-ignore-case 上的 java.lang.String。 底层实现使用了 StringValueTestXPathMessageSelectorspring-doc.cadn.net.cn

  • regex: 匹配一个 java.lang.String 操作。 底层实现使用了 RegexTestXPathMessageSelectorspring-doc.cadn.net.cn

当提供 'match-type' 值为 'regex' 时,match-value 属性提供的值必须是一个有效的正则表达式。spring-doc.cadn.net.cn

以下示例展示了xpath-filter元素的所有可用属性:spring-doc.cadn.net.cn

<int-xml:xpath-filter discard-channel=""                      (1)
                      id=""                                   (2)
                      input-channel=""                        (3)
                      match-type="exact"                      (4)
                      match-value=""                          (5)
                      output-channel=""                       (6)
                      throw-exception-on-rejection="false"    (7)
                      xpath-expression-ref="">                (8)
    <int-xml:xpath-expression ... />                          (9)
    <int:poller ... />                                        (10)
</int-xml:xpath-filter>
1 用于发送被拒绝消息的消息通道。 可选。
2 底层 bean 定义的 ID。 可选。
3 此端点的接收消息通道。 可选。
4 Type of match to apply between the XPath evaluation result and the match-value. The default is exact. Optional.
5 要与 XPath 评估结果匹配的字符串值。 如果您未设置此属性,则 XPath 评估必须产生布尔类型结果。 可选。
6 匹配筛选条件的消息将被分发到的通道。 可选。
7 默认情况下,此属性设置为 false,未匹配筛选条件的消息会被静默丢弃。 然而,如果设置为 true,消息拒绝将导致错误条件,并向调用方传播异常。 可选。
8 对要评估的 XPath 表达式实例的引用。
9 此子元素用于设置要评估的 XPath 表达式。 如果您未包含此元素,则必须设置 xpath-expression-ref 属性。 此外,您只能包含一个 xpath-expression 元素。
10 一个用于 XPath 过滤器的轮询器。 可选。