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