Using the XPath Filter
此组件定义了一个基于 XPath 的消息过滤器。内部,这些组件使用一个包装 AbstractXPathMessageSelector
实例的 MessageFilter
。
有关详细信息,请参阅 Filter。 |
要使用 XPath 过滤器,您至少必须通过声明 xpath-expression
元素或在 xpath-expression-ref
属性中引用 XPath 表达式来提供一个 XPath 表达式。
如果提供的 XPath 表达式计算得出一个 boolean
值,则不需要其他配置参数。然而,如果 XPath 表达式计算得出一个 String
,您应设置 match-value
属性,对其比对计算结果。
match-type
有三个选项:
-
exact
:对应于java.lang.String
中的equals
。基础实现使用StringValueTestXPathMessageSelector
-
case-insensitive
:对应于java.lang.String
中的equals-ignore-case
。基础实现使用StringValueTestXPathMessageSelector
-
regex
:匹配java.lang.String
中的一个操作。基础实现使用RegexTestXPathMessageSelector
当提供 regex
的 'match-type' 值时,随 match-value
属性一起提供的 value 必须是一个有效的正则表达式。
以下示例显示了 xpath-filter
元素的所有可用属性:
<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 过滤器一同使用轮询器。可选。 |