2015-09-27 3 views
0

Как объединить два атрибута в DataWeave из вывода списка?Как конкретизировать два атрибута XML в DataWeave

Моя полезная нагрузка:

[{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"> 

Я попытался с помощью оператора ++, но это дает ошибку как строки объекта.

+0

Вывод требуется как <вариация-атрибут variable-attribute-id = "Color" attribute-id = "Color"> –

ответ

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 ... оценивает вложенное выражение и «заполняет» значение variations с его результатом (который является массивом variation-attribute элементов)

Примечание : Я помещаю пустую строку как текст, так как в настоящее время невозможно закрыть теги inline.

+0

It Works .. Thanks –