我有一个类似下面的 XML
<root>
<item>
<refitemid>10</refitemid>
</item>
</root>
我的要求是首先向添加一个节点 <additional_info> ,然后根据获取的数据向 <additional_info> 添加新节点,以便新的 XML 呈现如下
<root>
<item>
<refitemid>10</refitemid>
<additional_info>
<sn><id>1</id></sn>
<sn><id>2</id></sn>
</additional_info>
</item>
</root>
我尝试使用下面的 Groovy 脚本来实现这一点。
def oPayload = new XmlSlurper().parseText(message.getBody() as String); //get above original XML data
if (oPayload.root.item.additional_info == "" || oPayload.root.item.additional_info == null) {
oPayload.root.item.appendNode {
additional_info {}
}
}
for (int i = 1; i < 3; i++) {
oPayload.root.item.additional_info.appendNode {
sn {
id(i.text())
}
}
}
oPayload = XmlUtil.serialize(oPayload)
不幸的是,上面的代码根本不起作用,因为结果(在 oPayload 中)将变成如下所示:
<root>
<item>
<refitemid>10</refitemid>
</additional_info>
</item>
</root>
您能分享一下如何实现该要求吗?非常感谢。