-1

我期望在一个请求中进行多项操作。我需要循环 xml 以使用 Apache 骆驼路由执行以下操作。1)获取请求xml中的总操作并放入变量中。2) 在 xml 上使用 xpath 获取表达式总数并放入列表 3) 循环 (操作总数) 次以评估表达式

第一步是列出 nodeList = /tractscation/operations

<loop>
<constant>nodeLIst.length</xpath>
compare and execute operation
</loop>

上面的行只是伪代码,我希望有人帮助我使用骆驼 Xpath 和循环的确切代码。.

我是 xpath 和骆驼的新手。我们正在使用camelxpath spring DSL

4

2 回答 2

0

如果您想遍历与 xpath 匹配的每个节点并单独处理它,请使用camel-splitter EIP ...

<route>
    <from uri="direct:a"/>
    <split>
        <xpath>/transaction/operations</xpath>
        <to uri="direct:b"/>
    </split>
</route>

否则,有一个骆驼循环EIP 可用于多次执行同一进程......但拆分器通常用于解析/循环类型的操作

from("direct:c").loop().xpath("/hello/@times").to("mock:result");
于 2013-10-17T02:28:56.480 回答
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>
于 2017-10-21T20:00:54.500 回答