如何在camel中获取XML文件

时间:2016-11-17 02:17:57

标签: apache apache-camel

我正在编写一个代码,我将使用Apache camel将XML文件中的一些员工信息发送到其他位置。现在,我需要更改XML中的一些值。如何解析XML并更改值,然后将其发送到该位置。我尝试使用.process(),但它不起作用。任何建议都会有所帮助。

3 个答案:

答案 0 :(得分:0)

使用Swift 3 Language Changes并将您的XML解析为Java模型并使用相同的Camel BeanIO模式处理它们以将它们从Java模型转换回XML。

答案 1 :(得分:0)

下面您可以看到修改XML文档的示例:

@Override
public void process(Exchange exchange) throws Exception {
                //Get your XML from exchange (maybe, your need to convert them to DOM Document before processing)
                Document doc = exchange.getIn().getBody(Document.class);
                //Here you can modify your XML

                //Modification example begin -------------
                        Element root = doc.getDocumentElement();
                        Element element = doc.createElement("newElement");
                        element.setTextContent("New element value");
                        root.appendChild(element);
                //Modification example end ---------------

                exchange.getIn().setBody(doc);                
}

我认为,在你的尝试中,你只是没有为交易所设置一个改变的身体。

答案 2 :(得分:0)

如果您想使用Java POJO并让框架执行XML解析/编组/解组,您可以使用JAXB功能。

然后,您可以使用Java POJO进行“编辑”(即更改值)并使用marshal / unmarshal功能在适当的时候转换为(或从中)。这样就不需要自己直接解析XML了(虽然这当然也会起作用)。

更多信息here.