<Orders>
<Order><sample att="a1">b1</sample></Order>
<Order><sample att="a2">b2</sample></Order>
<Order><sample att="a3">b3</sample></Order>
.
.
.
.
</Orders>
<Orders>
<Order><sample>a1||b1</sample></Order>
<Order><sample>a2||b2</sample></Order>
<Order><sample>a3||b3</sample></Order>
.
.
.
.
</Orders>
我需要在 dataweave组件中实现这一点。我在datamapper中也尝试过使用一些规则选项但没有结果。所以,请帮助我。我需要在dataweave组件中实现这一点。带语法的代码片段确实非常有用。
答案 0 :(得分:4)
请查看此处的示例和文档:http://mulesoft.github.io/data-weave/#_xml_to_json
它提供了有关如何访问xml属性和元素等的示例。以下是适用于您的场景的可能的Dataweave脚本
<Wall>
<Actual>
<Specifications>
<Insertion> 375.6858 916.8871 0.0000 </Insertion>
<Angle> 3.14159 </Angle>
<WallDesc> E4-1, H: 8' 1 1/8, Sh: Yes, S: 2~4~2~9-0-0~SPF~~, Spc: Single @ 16 in OC, BP: 2~4~2~12-0-0~SYP~~, CP: 2~4~2~12-0-0~SYP~~, TP: 2~4~2~12-0-0~SYP~~,\P LI: Single @ 38.75000000, CB: No, VB: No, NCT: 2~4~2~9-0-0~SPF~~, CT: 2~4~2~9-0-0~SPF~~, Pac: 2~4~2~9-0-0~SPF~~, Mir: Yes </WallDesc>
<WallNum> 1 </WallNum>
<VaporBarrier></VaporBarrier>
</Specifications>
</Actual>
</Wall>
答案 1 :(得分:1)
您可以使用:
%dw 0.1
%input payload application/xml
%output application/xml
---
Orders: {
(payload.Orders.*Order map {
Order: {
sample: $.@att ++ "||" ++ $.sample,
}
}
)
}