我期待一个请求中的多个操作。我需要使用Apache camel路由循环xml以执行以下操作。 1)获取请求xml中的总操作数并输入变量。 2)在xml上使用xpath获取表达式的总数并放入列表中 3)循环(总操作次数)次以评估表达式
第一步是list nodeList = / tractscation / operations
<loop>
<constant>nodeLIst.length</xpath>
compare and execute operation
</loop>
上面的行只是伪代码,我希望任何人使用camel Xpath和循环帮助我使用确切的代码。
我是xpath和camel的新手。我们正在使用camelxpath spring DSL
答案 0 :(得分:0)
如果你想循环遍历匹配xpath的每个节点并单独处理它,那么使用camel-splitter EIP ......
<route>
<from uri="direct:a"/>
<split>
<xpath>/transaction/operations</xpath>
<to uri="direct:b"/>
</split>
</route>
否则,有一个camel-loop EIP可以用来执行相同的进程多次......但是拆分器通常用于解析/循环操作类型
from("direct:c").loop().xpath("/hello/@times").to("mock:result");
答案 1 :(得分:0)
我希望它可以帮助你= D
内线
<to uri="direct:WSCall" />
<split strategyRef="groupExchangeAggregationStrategy">
<xpath>//response/operation</xpath>
</split>
速度模板
<tag>
#foreach( $exchangeItem in ${body} )
${exchangeItem.in.body}
#end
</tag>
包含
<beans>
<bean id="groupExchangeAggregationStrategy" class="org.apache.camel.processor.aggregate.GroupedExchangeAggregationStrategy" />
</beans>