使用正则表达式进行Spring集成Xpath过滤器

时间:2016-02-01 04:00:34

标签: spring xpath filter spring-integration

我正在使用Xpath Filter过滤掉一些传入的事件。

这是我的示例输入xml。我需要通过允许fieldC值为1,2,3,6或7的事件来过滤fieldC的值。

<?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()
/添加/ DOC /字段[@名称= '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>

按匹配类型“完全”过滤,但我无法使用正则表达式。

Regex尝试:/ ^(1 | 2 | 3 | 6 | 7)$ /

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

你的正则表达式语法错误;丢失/ s ...

match-value="^(1|2|3|6|7)$" match-type="regex"

......对我来说很好。