我正在尝试学习Apache Camel Routes。对于一个基本示例,我想知道如何基于XML标记中的值进行路由。例如,如果我们有3个带有父标记的xml文件:
<item type="n1" />
<item type="n2" />
<item type="n3" />
我想将这3个路由到3个不同的管道......
所以这是我的想法(在春天):
<route id="NormalizeMessageData">
<from uri="jms:incomingOrders" />
<convertBodyTo type="java.lang.String" />
<choice>
<when>
<simple>${body} contains '?xml'</simple> <!-- to make sure its xml file only -->
*
*
*
<unmarshal>
<jaxb contextPath="org.fusesource.camel" />
</unmarshal>
<to uri="jms:orders" />
</when>
</choice>
看星星(*),这是我们需要进行一些检查的地方。但是如何?
答案 0 :(得分:2)
请参阅上面链接的Camel xpath文档以获取所有详细信息,但您应该只需要:
<choice>
<when>
<xpath>/item/@type = 'n1'</xpath>
...
</when>
</choice>