循环与阿帕奇骆驼

时间:2013-10-17 01:28:51

标签: xpath xml-parsing apache-camel

我期待一个请求中的多个操作。我需要使用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

2 个答案:

答案 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>