AndrWeisR
AndrWeisR

Reputation: 1226

DataWeave 2 - transform Java ArrayList to XML with array item tags

I have a Java payload in Mule 4.3 which contains an ArrayList:

agentList = {ArrayList}
    0 = {SomeClass}
        id = "0"
        name = "Agent0"
    1 = {SomeClass}
        id = "1"
        name = "Agent1"

I want to transform this to XML as:

<agentList>
    <agent>
         <id>0</id>
         <name>Agent0</name>
    </agent>
    <agent>
         <id>1</id>
         <name>Agent1</name>
    </agent>
</agentList>

If I do a DataWeave transform output application/xml --- result: payload, I get this XML:

<result>
    <agentList>
         <id>0</id>
         <name>Agent0</name>
    </agentList>
    <agentList>
         <id>1</id>
         <name>Agent1</name>
    </agentList>
</result>

How can I transform the ArrayList so that I get each item enclosed by agent tags and the entire list as agentList?

Upvotes: 0

Views: 411

Answers (1)

AndrWeisR
AndrWeisR

Reputation: 1226

%dw 2.0
output application/xml
---
result: {
    agentList: payload.*agentList map (value) -> { agent: value }
}

Upvotes: 1

Related Questions