繁体   English   中英

如何从骆驼路线中的 XML 中删除元素?

[英]How to remove element from XML in Camel route?

假设我有下一个 XML 来自 Oracle 队列到骆驼路线:

<book>
    <author>Jack London</author>
    <name>White Fang</name>
    <publisher>Penguin</publisher>
    <year>1905</year>
    <price>25USD</price>
</book>

我想在我的路线中处理这个交换主体并删除一些元素,例如price并继续处理主体:

<book>
    <author>Jack London</author>
    <name>White Fang</name>
    <publisher>Penguin</publisher>
    <year>1935</year>
</book>

这样做最简单的方法是什么? 当然,它可以通过声明一些 bean 或 Camel 处理器来完成,该处理器将 body 作为 XML 编组/解组并返回。

但我想知道骆驼是否有另一种开箱即用的方法?

在 Camel 路由中使用transform()和正则表达式替换,在没有 bean 或处理器的情况下设法解决了这个问题:

from(source)
  .log(DEBUG, log, "Initial message: ${body}")
  .transform(body().regexReplaceAll("<price>\\.*<\\/price>",""))
  .log(DEBUG, log, "Processed message: ${body}")
  .to(destination);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM