如何在DataWeave中连接两个XML属性

时间:2015-09-27 07:36:55

标签: 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" attribute-id="Colour">

我尝试使用++运算符,但它给出了像对象一样的错误。

1 个答案:

答案 0 :(得分:0)

要做到这一点,你必须写下这样的东西:

%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-attribute,因此您需要map操作。

属性指定如下:

<element> @(<attrName>: <attrValue>, <attrName2>: <attrValue2>, ...)

围绕payload map ...的括号会评估所附表达式,并且&#34;填充&#34; variations的值及其结果(variation-attribute元素数组)

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