java - Camel ..使用xpath解析消息正文中的xml

标签 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"/>

以上不对的地方或更正

最佳答案

使用

<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

关于java - Camel ..使用xpath解析消息正文中的xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22870755/

相关文章:

xml - 在构建解决方案时,如何让 MSBuild 任务生成 XML 文档?

c# - 如何解析包含节点列表的 XML 文件?

python - 为什么尝试使用 selenium 单击会出现 "ElementNotInteractableException"?

java - Graphql 联合在扩展关系上返回 null

java - 在普通浏览器中打开来自 Android Webview 的链接作为弹出窗口

python - scrapy response.xpath 在具有默认命名空间的 xml 文档上返回空数组,而 response.re 有效

java - xml 解析器 - 使用 Java 进行带条件编译的 XML xpath

xml - 如何选择包含@符号(at符号)的属性

java - 使用 jsoup 通过 Java 加载嵌套链接

java - 如何在宿主机中使用docker-build库bin