使用 dataweave 创建 xml 片段(即删除根元素)
create xml snippet using dataweave (i.e. remove root element)
想要这样的输出
</b>
<c>
<value1 />
</c>
<c>
<value2 />
</c>
<c>
<value3/>
</c>
而不是这个
<a>
</b>
<c>
<value1 />
</c>
<c>
<value2 />
</c>
<c>
<value3/>
</c>
</a>
通过数据编织。我知道输出不一定是完全有效的 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") 的末尾添加了一个换行符。如果需要,您可以删除它。
想要这样的输出
</b>
<c>
<value1 />
</c>
<c>
<value2 />
</c>
<c>
<value3/>
</c>
而不是这个
<a>
</b>
<c>
<value1 />
</c>
<c>
<value2 />
</c>
<c>
<value3/>
</c>
</a>
通过数据编织。我知道输出不一定是完全有效的 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") 的末尾添加了一个换行符。如果需要,您可以删除它。