2016-11-17 32 views
0

我正在編寫一個代碼,我使用Apache駱駝將XML文件中的一些僱員信息發送到其他位置。現在,我需要更改XML中的一些值。我該如何解析XML並更改該值,然後將其發送到該位置。我試圖使用.process(),但它不工作。任何建議都會有所幫助。如何獲取駱駝中的XML文件

+0

你需要使用XML解析器解析XML,然後操縱消息。你可以在一個bean或者一個處理器類中完成它。 –

回答

0

使用Camel BeanIO並將您的XML解析到Java模型中,並使用相同的Camel BeanIO模式將它們轉換爲Java模型中的XML。

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);     
} 

我想,在你嘗試,你就沒有改變的機身設置爲交換。

0

如果您想使用Java POJO的並讓框架執行XML解析/編組/解組,您可以使用JAXB功能。

然後,您可以使用Java POJO進行「編輯」(即更改值)並將其轉換爲(或來自)XML,適當時使用編組/解組功能。這避免了直接自己解析XML的需求(儘管這當然會起作用)。

更多信息here.