1
我在循環數據編織器中的條目方面掙扎不已。以下是輸入和預期響應。 不知道如何使循環(我需要得到RecordEntry
和每個條目與'IndividualEntry')。如何處理數據編織器中的每個條件:Mule
輸入xml:輸入xml中的記錄條目標記是3,但我可能會得到很多。所以需要做一個動態的循環。
<?xml version="1.0" encoding="UTF-8"?>
<Records>
<storenumber />
<calculated>false</calculated>
<subTotal>12</subTotal>
<RecordsEntries>
<RecordEntry>
<deliverycharge>30.0</deliverycharge>
<entryNumber>8</entryNumber>
<Value>true</Value>
</RecordEntry>
<RecordEntry>
<deliverycharge>20.0</deliverycharge>
<entryNumber>7</entryNumber>
<Value>false</Value>
</RecordEntry>
<RecordEntry>
<deliverycharge>1.0</deliverycharge>
<entryNumber>6</entryNumber>
<Value>false</Value>
</RecordEntry>
</RecordsEntries>
</Records>
預期的響應(我期待下面的響應)
<?xml version="1.0" encoding="UTF-8"?>
<orders>
<order>
<StoreID />
<Total>false</Total>
<IndividualEntry>
<Number>8</Number>
<DeliverCharge>30.0</DeliverCharge>
</IndividualEntry>
<IndividualEntry>
<Number>7</Number>
<DeliverCharge>20.0</DeliverCharge>
</IndividualEntry>
<IndividualEntry>
<Number>6</Number>
<DeliverCharge>1.0</DeliverCharge>
</IndividualEntry>
</order>
</orders>
我的數據韋弗轉型如下
%dw 1.0
%output application/xml
---
{
orders: {
order: {
StoreID:payload.Records.storenumber,
Total: payload.Records.calculated,
IndividualEntry: payload.Records.RecordsEntries.*RecordEntry map {
Number:$.entryNumber,
DeliverCharge:$.deliverycharge
}
}
}
}
目前我得到的反應如下(我不噸知道如何使每個記錄條目作爲IndividualEntry
標籤,也在這裏element
標籤被添加額外,這是不需要在我的情況下)
<?xml version="1.0" encoding="UTF-8"?>
<orders>
<order>
<StoreID />
<Total>false</Total>
<IndividualEntry>
<element>
<Number>8</Number>
<DeliverCharge>30.0</DeliverCharge>
</element>
<element>
<Number>7</Number>
<DeliverCharge>20.0</DeliverCharge>
</element>
<element>
<Number>6</Number>
<DeliverCharge>1.0</DeliverCharge>
</element>
</IndividualEntry>
</order>
</orders>
任何人都可以幫助我解決這個問題。提前致謝。
見部分
5.1.3. Dynamic elements
請注意,這裏的關鍵是使用地圖功能上返回所需收集的表達式。在這個例子中,它是payload.Records.RecordsEntries。* RecordEntry。 –完美!工作正常。嘗試了很多事情,但還沒有嘗試過使用括號。謝謝你的細節! – star