Mule 如何在DataWeave中关联两个XML属性

Mule 如何在DataWeave中关联两个XML属性,mule,dataweave,Mule,Dataweave,如何从列表输出连接DataWeave中的两个XML属性 我的有效载荷是: [{productDetails={ean=null, variation-attribute-id=Colour, attribute-id=Colour, attribute=System Value, varaints=123, display-name=Colour}] 我想要一个如下输出: <variation-attribute variation-attribute-id="Colour" att

如何从列表输出连接DataWeave中的两个
XML
属性

我的有效载荷是:

[{productDetails={ean=null, variation-attribute-id=Colour, attribute-id=Colour, 
attribute=System Value, varaints=123, display-name=Colour}] 
我想要一个如下输出:

<variation-attribute variation-attribute-id="Colour" attribute-id="Colour">


我尝试使用
++
运算符,但它给对象提供了类似字符串的错误。

要做到这一点,您必须编写如下代码:

%dw 1.0
%output application/xml
---
variations: {
  (payload map {
    variation-attribute @(
      variation-attribute-id: $.productDetails.variation-attribute-id, 
      attribute-id: $.productDetails.attribute-id): ""
  }) 
}
(我假设根目录有一个
variations
元素)

这里,对于列表中的每个项目(
payload
),您必须生成一个
variation属性
,因此您需要一个
map
操作

属性的指定方式如下:

<element> @(<attrName>: <attrValue>, <attrName2>: <attrValue2>, ...)
@(:,:,…)
payload map…
周围的括号计算封闭表达式,并用其结果“填充”
variations
的值(这是一个
variation属性
元素的数组)

注意:我将一个空字符串作为文本,因为目前无法内联关闭标记。

需要的输出如下