我需要生成一些包含名为“属性”的元素的 xml。当我尝试以下操作时,我注意到 groovy 正在尝试获取我的类的属性,正如它对getSomething
. 相反,它应该只生成一个名为“properties”的元素。
class XMLGen
{
public String getSomething() {
println "Got something"
}
public String genXml()
{
def myProps = ['a':1, 'b':2]
def xml = new groovy.xml.StreamingMarkupBuilder().bind{
rootTag{
properties{ // ???
myProps.each{ prop ->
property(key: prop.key, value: prop.value)
}
}
}
}
return groovy.xml.XmlUtil.serialize(xml)
}
}
println new XMLGen().genXml()
输出:
Got something
<?xml version="1.0" encoding="UTF-8"?><rootTag>
<properties>
<property key="a" value="1"/>
<property key="b" value="2"/>
</properties>
</rootTag>
我将如何明确地“告诉”groovy 将在线方法调用(标记为???)传递给标记生成器?
(问这个问题并自己回答,因为我在任何地方都找不到解决方案,但最终“猜到”了正确的答案)