使用dataweave创建xml片段(即删除根元素)



希望有这样的输出

</b>
<c>
<value1 />
</c>  
<c>
<value2 />
</c>  
<c>
<value3/>
</c>

而不是这个

<a>
</b>
<c>
<value1 />
</c>  
<c>
<value2 />
</c>  
<c>
<value3/>
</c>
</a>

通过dataweave。我知道输出不一定是完全有效的xml

感谢提供的任何帮助

因为它将错过一个根元素,所以它将不是有效的XML。因此DataWeave将无法直接读取或写入它。您可以为每个元素生成一个XML,并将它们连接为字符串,以避免出现XML解析错误。

输入无效,我将其修复为:

<a>
<b/>
<c>
<value1 />
</c>  
<c>
<value2 />
</c>  
<c>
<value3/>
</c> 
</a>

脚本:

%dw 2.0
output application/java
---
(payload[0] pluck (value,key,index) -> {(key):value} )
reduce ((item, acc="") -> acc ++ write(item, "application/xml",  {"writeDeclaration":false}) ++ "n" ) 

输出:

<b/>
<c>
<value1/>
</c>
<c>
<value2/>
</c>
<c>
<value3/>
</c>

请注意,为了清楚起见,我在每个字符串("\n"(的末尾添加了一行换行符。如果需要,可以将其删除。

最新更新