当前位置: 首页 > 知识库问答 >
问题:

如何在Camel路由中从XML中删除元素?

宗政兴发
2023-03-14

假设我的下一个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处理器来完成,该处理器将主体作为XML封送/解封送并返回。

但是我想知道骆驼是否有另一种方法?

共有1个答案

牧熙云
2023-03-14

通过使用transform()和正则表达式替换,在无需bean或处理器的情况下,成功解决了这个问题:

from(source)
  .log(DEBUG, log, "Initial message: ${body}")
  .transform(body().regexReplaceAll("<price>\\.*<\\/price>",""))
  .log(DEBUG, log, "Processed message: ${body}")
  .to(destination);
 类似资料:
  • 我试图熟悉EIP和Apache骆驼,我有一个用例,我不太确定如何使用骆驼来表达或实现 用例: 假设您设计了一个集成解决方案,它从ftp中获取文件,进行一些处理并将其上传到队列。您选择Apache Camel来实现此解决方案,并且您在JavaDSL中的路由如下所示: 路线可能比这复杂得多,但在这里没关系。想象一下你的解决方案是如此的成功,以至于有一个计划来实现一个服务,任何人都可以添加他的ftp服务

  • 这是我的XML文件 我只想从xml中删除第二个选项 我的java代码从我的选项元素中删除所有选项。使用

  • 问题内容: 我陷入了XML和Python的困境。任务很简单,但到目前为止我还无法解决,花了那么长时间。我是来这里咨询如何用几行解决它的。 感谢您对遍历树的任何帮助。我总是以太多或太少的元素结束。元素可以无限制地嵌套。给出的例子只是一个例子。我会接受任何解决方案,而不是对dom,minidom,sax等等不挑剔。 我有一个与此类似的XML文件: 我需要的是-解析XML并编写一个新文件。新文件应包含给

  • 我正在尝试从xml文件中删除元素和子元素。特别是附加名称Testlog。 首先这是我的xml文件的外观。 以下是我的java代码: 我想删除此appender的所有内容,但引发了一个异常。可能是我错过了一些简单的东西。 有什么想法吗?

  • 问题内容: 如何使用Apple的新语言Swift取消设置/删除数组中的元素? 这是一些代码: 如何从数组中删除元素? 问题答案: 该关键字是声明不能改变的常量。如果要修改变量,则应改用,例如: 一个使原始集合保持不变的非变异替代方法是用于创建一个新集合,而无需删除想要删除的元素,例如: