对于最新稳定版本,请使用 Spring Integration 7.0.0spring-doc.cadn.net.cn

使用 XPath 过滤器

该组件定义了一个基于 XPath 的消息过滤器。在内部,这些组件使用消息过滤该实例包裹了抽象XPathMessageSelector.spring-doc.cadn.net.cn

详情请参见筛选

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

如果提供的XPath表达式应值为布尔不需要额外的配置参数。然而,如果XPath表达式的值是字符串,你应该设置匹配值属性,以该属性进行匹配。spring-doc.cadn.net.cn

比赛类型有三种选择:spring-doc.cadn.net.cn

  • 确切:对应等于java.lang.字符串. 底层实现使用StringValueTestXPathMessageSelectorspring-doc.cadn.net.cn

  • 大小写不区分:对应等于无视情况java.lang.字符串. 底层实现使用StringValueTestXPathMessageSelectorspring-doc.cadn.net.cn

  • 正则表达式: 配对作一java.lang.字符串. 底层实现使用正规测试XPathMessageSelectorspring-doc.cadn.net.cn

当提供“匹配类型”值的“正则表达式”时,提供的值是匹配值属性必须是有效的正则表达式。spring-doc.cadn.net.cn

以下示例展示了所有可用的属性xpathFilter元素: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 底层豆子定义的ID。 自选。
3 该端点的接收消息信道。 自选。
4 XPath评估结果与匹配值. 默认为确切. 自选。
5 字符串值与XPath评估结果匹配。如果不设置该属性,XPath评估必须生成布尔结果。 自选。
6 匹配过滤条件的消息被调度到的信道。 自选。
7 默认情况下,该属性设置为false拒绝的消息(不符合过滤条件的)会被静默丢弃。然而,如果设置为true消息拒绝会导致错误状态,异常会被上游传播到呼叫者。 自选。
8 引用 XPath 表达式实例进行评估。
9 该子元素设置待评估的XPath表达式。如果不包含该元素,必须设置xpath-expression-ref属性。 另外,你只能包含一个xpath表达式元素。
10 一个用于XPath过滤器的轮询器。 自选。