在dataweave中将XML中列表的多行列表转换为json中的单个数组

Avn*_*ngh 1 dataweave mulesoft

在dataweave中,我想将以下复杂的xml转换为json输出,如下所示:

<Message>
    <Shipment>
        <Containers>
            <Container TrackingNo="Abc1" />
         </Containers>
    </Shipment>
    <Shipment>
        <Containers>
            <Container TrackingNo="Abc2" />
            <Container TrackingNo="Abc3" />
        </Containers>
    </Shipment>
    <Shipment>
        <Containers>
            <Container TrackingNo="Abc4" />
            <Container TrackingNo="Abc5" />
            <Container TrackingNo="Abc6" />
        </Containers>
    </Shipment>
</Message>
Run Code Online (Sandbox Code Playgroud)

我想在 dataweave 中转换后获得以下 JSON 格式的输出:

tracking_no:[
    {
        TrackingNo="Abc1"
    },
    {
        TrackingNo="Abc2"
    },
    {
        TrackingNo="Abc3"
    },
    {
        TrackingNo="Abc4"
    },
    {
        TrackingNo="Abc5"
    },
    {
        TrackingNo="Abc6"
    }
]
Run Code Online (Sandbox Code Playgroud)

mac*_*val 5

您可以使用后代选择器,然后使用属性选择器

%dw 2.0
output application/json
---
tracking_no: payload..*Container.@
Run Code Online (Sandbox Code Playgroud)