2016-07-19 44 views
0

我在我的項目中使用了Spring集成。我有以下有效載荷。如何存儲有效載荷並在稍後將其附加到另一個有效載荷?

<?xml version="1.0" encoding="UTF-8"?> 
<PQ> 
    <PQContact> 
     <hostAddress>10.193.244.136</hostAddress> 
    </PQContact> 
    <workflowStatusComment> 
     <comment>I am here</comment> 
    </workflowStatusComment> 
</PQ> 

我想提取標籤<workflowStatusComment>workflowStatusComment <comment>I am here</comment></workflowStatusComment>並保存,以便將來使用。我不想在將來使用任何java代碼來使用保存的標籤信息。我想在執行結束時將保存的信息添加到另一個有效內容中。我知道有關頭部豐富,但我不知道如何在不使用Java的情況下使用保存的頭部富集值。我必須只使用Spring集成組件來操作有效負載。

第二個有效載荷到我要追加保存的標籤信息是在這裏:

<?xml version="1.0" encoding="UTF-8"?> 
<PQ> 
    <PQContact> 
     <hostAddress>10.193.244.136</hostAddress> 
     <name>Ashok</name> 
     <userId>007</userId> 
    </PQContact> 
</PQ> 

追加保存的標籤信息,以上述載荷後,我最終的有效載荷應該像一些最初的有效載荷額外的信息。像下面這樣:

<?xml version="1.0" encoding="UTF-8"?> 
<PQ> 
    <PQContact> 
     <hostAddress>10.193.244.136</hostAddress> 
     <name>Ashok</name> 
     <userId>007</userId> 
    </PQContact> 
    <workflowStatusComment> 
     <comment>I am here</comment> 
    </workflowStatusComment> 
</PQ> 

有什麼辦法嗎?

回答

1

您可以使用<int-xml:xpath-transformer>#xpath() SpEL函數從XML中提取該信息。

但是你必須與我們分享什麼是你的「另一個有效載荷」,以及你想如何添加這個提取的。

也許用Java來解決一些問題甚至比我們在這裏考慮如何將它轉換成Spring Integration XML DSL或類似軟件更好。

請修改您的問題,使其更清晰。

UPDATE

插入一個XML到另一個你要爭取一點javax.xml API。

的代碼可能是這樣的:

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 

Document target = builder.parse(new StringBufferInputStream(targetXML)); 
Element source = builder.parse(new StringBufferInputStream(sourceXML)).getDocumentElement(); 


target.appendChild(source); 

更新2

但我不希望使用任何Java代碼。

好吧,如果你的目標XML可以表示爲一個模板字符串可以在<transformer>expression使用標準replaceFirst()

字符串targetXml = 「」;

<transformer expression="'<?xml version="1.0" encoding="UTF-8"?> 
<PQ> 
    <PQContact> 
     <hostAddress>10.193.244.136</hostAddress> 
     <name>Ashok</name> 
     <userId>007</userId> 
    </PQContact> 
    $workflowStatusCommentToken$ 
</PQ>'.replaceFirst('\\$workflowStatusCommentToken\\$', headers.originalXml)"/> 
+0

感謝您的回覆。我編輯了這個問題。請現在看看。 –

+0

我編輯了這個問題。如果存在,您能否提供解決方案? –

+0

在我的答案中查看更新。 –