【发布时间】:2016-02-01 04:00:34
【问题描述】:
我正在使用 Xpath 过滤器来过滤掉一些传入事件。
这是我的示例输入 xml。我需要按 fieldC 的值进行过滤,允许 fieldC 值为 1、2、3、6 或 7 的事件。
<?xml version="1.0" encoding="UTF-8"?>
<add>
<doc>
<field name="fieldA">453.97</field>
<field name="fieldB">278.25</field>
<field name="fieldC">3</field>
<field name="fieldD">Agent</field>
<field name="fieldE">Mobile Site</field>
<field name="fieldF">Cancel</field>
<field name="fieldG">2015-09-14T13:17:21.000Z</field>
</doc>
</add>
Xpath 尝试过:
/add/doc/field[@name='fieldC']/text()
/add/doc/field[@name='fieldC']
<int:chain input-channel="channelIn" output-channel="channelOut">
<int-xml:xpath-filter id="filterEvents" match-value="3" match-type="exact">
<int-xml:xpath-expression expression="/add/doc/field[@name='fieldC']/text()" />
</int-xml:xpath-filter>
</int-xml:xpath-filter>
</int:chain>
按匹配类型“精确”过滤有效,但我无法使用正则表达式获得相同的效果。
正则表达式尝试:/^(1|2|3|6|7)$/
任何帮助将不胜感激。
【问题讨论】:
标签: spring xpath filter spring-integration