此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1spring-doc.cadn.net.cn

使用 XPath 过滤器

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

有关更多详细信息,请参阅过滤器

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

如果提供的 XPath 表达式计算结果为boolean值,则不需要进一步的配置参数。但是,如果 XPath 表达式的计算结果为String,则应将match-value属性,评估结果与之匹配。spring-doc.cadn.net.cn

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

  • exact:对应于equalsjava.lang.String. 底层实现使用StringValueTestXPathMessageSelectorspring-doc.cadn.net.cn

  • case-insensitive:对应于equals-ignore-casejava.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 要在 XPath 评估结果和match-value. 默认值为exact. 自选。
5 要与 XPath 评估结果匹配的字符串值。如果未设置此属性,则 XPath 评估必须生成布尔结果。 自选。
6 将与筛选条件匹配的邮件分派到的通道。 自选。
7 默认情况下,此属性设置为false和被拒绝的邮件(与筛选条件不匹配的邮件)将以静默方式删除。但是,如果设置为true,消息拒绝会导致错误情况,并将异常向上游传播到调用方。 自选。
8 引用要计算的 XPath 表达式实例。
9 此子元素设置要计算的 XPath 表达式。如果不包含此元素,则必须将xpath-expression-ref属性。 此外,您只能包含一个xpath-expression元素。
10 与 XPath 过滤器一起使用的轮询器。 自选。