мой вход xml:
<Root>
<Element>
<Record att="a">value</Record>
<Record att="b">value</Record>
.
.
<Record att="g">value</Record>
<Record att="h">value</Record>
.
.
<Record att="p">value</Record>
.
.
<Record att="t">value</Record>
.
.
<Record att="w">value</Record>
.
.
<Record att="z">value</Record>
</Element>
<Element>
<Record att="a">value</Record>
<Record att="b">value</Record>
.
.
<Record att="g">value</Record>
<Record att="h">value</Record>
.
.
<Record att="p">value</Record>
.
.
<Record att="t">value</Record>
.
.
<Record att="w">value</Record>
.
.
<Record att="z">value</Record>
</Element>
.
.
.
.
.
.
</Root>
Конфигурация dataweave, которую я пробовал:
%dw 1.0
%input payload application/xml
%output application/csv
---
payload.root.*Element[0].*Record map {
(id:$.@att) when ($.@att) == "g" or ($.@att) == "t",
(type:($.@att) when ($.@att) == "g" or ($.@att) == "t"
}
О / п, который я получил в моем CSV:
id,type (headers)
blanklines
.
.
.
g,g
.
.
.
.
t,t
.
.
Требование ясное. Мне нужны только записи элемента [0]. В моем o / p CSV не должно быть пустых строк. Ожидаемый результат должен быть:
id,type
g,g
t,t
Я до сих пор не мог понять синтаксис и концепции Dataweave для зацикливания. Пожалуйста, помогите мне. Принимается любое лучшее решение.