[英]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.