java - 如何使用 Apache Camel、java DSL、eclipse 更改 XML 文件的内容

标签 java eclipse apache-camel

我有一个 XML 文件,名为 input-kunde-2.xml。

from("file:c:/test/?fileName=input-kunde-2.xml")
<?xml version='1.0' encoding='UTF-8'?>
<list>    
   <Name>Ying</Name>
   <Age>23</Age>
</list>

我使用 Apache Camel 将此文件从 C:/路由到另一个地方 D:/。

to("file:d:/test/?fileName=output-kunde-2.xml")

我想要什么?

现在,我想更改 XML 文件的内容。

在文件 input-kunde-2.xml 中:<Name>Ying</Name>

在文件output-kunde-2.xml中:<Name>Wang</Name>

我该如何实现它? 我尝试过使用:

File body = exchange.getIn().getBody(File.class);
//KundeDTO kundeDTO = exchange.getIn().getBody(KundeDTO.class);

但是我只能获取XML文件的路径。

非常感谢!

最佳答案

如果您想从文件中提取值,请将其视为 XML 文档并使用 xpath

例如

.setHeader("myHeader").xpath("/list/Name/text()", String.class)

此文档位于此处 http://camel.apache.org/xpath.html

<小时/>

如果您想修改整个 XML 文档,请使用 XSLT。使用“from”使用您的文件,然后通过 XSLT 组件传递它,然后将其发送到您的文件位置

此文档位于此处 http://camel.apache.org/xslt.html

关于java - 如何使用 Apache Camel、java DSL、eclipse 更改 XML 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17142974/

相关文章:

java - 使用 CAMEL 处理确认?

Eclipse PDT 调试设置 (XDebug/Zend)

ruby-on-rails - 如何使用 eclipse 调试 jRuby?

java - Apache Camel 单元测试用例

spring-boot - 在完成之前返回 spring 批处理作业的作业 ID "immediately"

java - Wildfly:将 Spring 和 Camel 嵌入到 jar 中

java - 如何 JUnit 测试我的模拟方法是否使用我想要的参数(不仅仅是 id,而是深度相等匹配器)调用?

java - 使用 JDBC 或 ODBC 执行进度数据库查询 (4GL)

java - 如何使用java递归获取JSON的键?

java - 如何将缺少 .project .settings .classpath 文件的 java 项目导入到 Eclipse 中