2015-12-17 130 views
1

我正在嘗試編寫數據編織以在響應xml中添加價格。如何處理mule中的響應ESB

請求XML看起來像

<?xml version="1.0" encoding="UTF-8"?> 
<UniversityResponse xmlns="urn:abc:api:Components"> 
    <Timestamp>2015-12-16T22:05:41.229Z</Timestamp> 
    <Dept>IT</Dept> 
    <Fees> 
     <Fee> 
      <Name>John</Name> 
      <Fee currencyID="USD">1.0</Fee> 
     </Fee> 
     <Fee> 
      <Name>Enrique</Name> 
      <Fee currencyID="USD">3.0</Fee> 
     </Fee> 
     <Fee> 
      <Name>Mary</Name> 
      <Fee currencyID="USD">2.0</Fee> 
     </Fee> 
     <Fee> 
      <Name>Meena</Name> 
      <Fee currencyID="USD">0.5</Fee> 
     </Fee> 
    </Fees> 
</UniversityResponse> 

截至目前,我寫像

%dw 1.0 
%namespace ns0 urn:abc:api:Components 
%output application/xml 
--- 
TotalFees:{ 
    plus : payload.ns0#UniversityResponse.ns0#Fees.*ns0#Fee[0].ns0#Fee + 
    payload.ns0#UniversityResponse.ns0#Fees.*ns0#Fee[0].ns0#Fee + 
    payload.ns0#UniversityResponse.ns0#Fees.*ns0#Fee[1].ns0#Fee + 
    payload.ns0#UniversityResponse.ns0#Fees.*ns0#Fee[2].ns0#Fee + 
    payload.ns0#UniversityResponse.ns0#Fees.*ns0#Fee[3].ns0#Fee 
} 

輸出:

<TotalFees> 
    <plus>6.5</plus> 
</TotalFees> 

我怎麼能迴路響應XML複雜的標籤?

基本上我想爲UniversityResponse/Fees創建一個循環。在循環內,我想寫一些東西像Plus = Plus +「UniversityResponse /費用/費用[counter] .Fee」

回答

1

這是一種破題者,因爲我在文檔中尋找SUM函數,而不是文檔,但它是在語言:)

-

%dw 1.0 
%output application/xml 
%namespace ns0 urn:abc:api:Components 
--- 

TotalFees: plus: sum payload.ns0#UniversityResponse.ns0#Fees.*ns0#Fee.ns0#Fee 

<?xml version='1.0' encoding='UTF-8'?> 
<TotalFees> 
    <plus>6.5</plus> 
</TotalFees> 
+0

道歉。 我想在「費用」標籤下添加所有費用並保留在「加號」標籤中。我用更多的解釋更新了我的問題。 基本上我想爲UniversityResponse/Fees創建一個循環。在循環內我想寫Plus = Plus +「UniversityResponse /費用/費用[counter] .Fee」 – Simbu

+0

更新我的回答 – JoostD

+0

謝謝! :)它爲我工作。簡單的求和函數沒有循環就搞定了。 :) – Simbu