我有一个xml,我在Spring DSL中使用split标签进行处理。 我正在做的基本上是在xml中搜索一个值,当我找到这个值时,我需要获取另一个标记的值,相同元素的子节点并保存到标题中。这个操作看起来很简单,但是我不能在分割之外恢复我的标题,我需要这样做。我尝试使用标题和属性,结果是一样的。
请帮我弄清楚我做错了什么。
代码示例:
<route>
...
<split>
<xpath>//FatherTag/ChildTag</xpath>
<to uri="direct:processingRoute"/>
</split>
</route>
<route>
<from uri="direct:processingRoute"/>
<choice>
<when>
<simple>....</simple>
<setHeader headerName="foo">
<constant>test</constant>
</setHeader>
</when>
</choice>
</route>
答案 0 :(得分:0)
您需要定义AggregationStrategy
。来自Camel Splitter:
Splitter返回的内容
Camel 2.3及更新:
Splitter默认返回原始输入消息。
适用于所有版本
您可以通过将自己的策略作为 AggregationStrategy 来实现覆盖。
您的AggregationStrategy
需要检查每个子标记的相应标头集,并将其传递给生成的Exchange输出消息以进行拆分操作。