Groovy Node- 添加新子只添加结束标记

Groovy Node- Add new child only adds closing tag

我 运行 遇到了使用 Groovy 将新子节点添加到 XML 文档的问题。我不希望新节点中有任何子节点,此时它只是一个占位符。基本上,代码看起来像

trans = new Node(parent, translationsName, new HashMap(), new HashMap(), "")
parent.children.add(trans)

然而,当我检查 XML 时,添加的只是

<NODE/>

当我想要的是...

<NODE>
</NODE>

我一直在网上搜索并阅读文档,但无济于事。有人对这个有经验么?我似乎无法弄清楚我做错了什么。谢谢!

您只是在查看空节点的自闭合语法。请注意末尾的斜杠,而不是像结束标记那样位于开头。您只有两种方法可以渲染同一个空节点。

根据您的呈现方式,您有时可以要求任何一种形式,例如Groovy 的 XmlNodePrinter 有一个 "expandEmptyElements" 属性。性能良好的 XML 工具应该支持任一变体。

如果你真的还需要那里的换行符,那么你必须添加一个文本节点(带换行符)。