Camel ..使用xpath解析消息体中的xml

时间:2014-04-04 18:48:11

标签: java xml xpath jms apache-camel

我有一个简单的流,它从activemq1读取并解析消息中的id并将id发送到另一个activemq2。

以下是写入activemq1的消息示例:

<Customer>
  <Order>
     <id>123</id>
  </Order>
<Customer>

我需要解析上面邮件正文中的id并将以下消息发送到activemq2:

"Order with id{123} has been queued" 

这是我提出的流程,但它将完整的请求xml写入队列,但不是我要查找的消息:

<from uri="jms:queue:Q.activemq1"/>
   <setBody>
        <xpath>"/Customer/Order/id/@value/text()"</xpath>
    </setBody>
 <to uri="jms:queue:Q.activemq2"/>

上述任何错误或任何更正

1 个答案:

答案 0 :(得分:4)

使用

<route>
    <from uri="jms:queue:Q.activemq1" />
    <setBody>
        <xpath resultType="java.lang.String">/Customer/Order/id/text()</xpath>
    </setBody>
    <setBody>
        <simple>Order with ${body} has been queued</simple>
    </setBody>
    <log message="${body}"/>
</route>

打印

Order with 123 has been queued