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

How to concate two XML attributes in 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">

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

为此,您必须编写如下内容:

%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 ... 的括号计算封闭的表达式和 "fills" variations 的值及其结果(这是一个 variation-attribute 元素的数组)

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