请考虑以下代码:
def builder = new MarkupBuilder()
builder.root() {
}
我想将root子项的创建委托给一个单独的方法。我怎样才能完成这项任务?要考虑的一些选项是从方法创建和返回节点,或者传入父节点并在方法中添加它们(两个示例都很有用)。
答案 0 :(得分:7)
Groovy website包含有关如何实现此目的的说明。
样品:
def writer = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(writer)
xml.books() {
createBookNode(xml, 2, 'mrhaki')
}
def createBookNode(builder, repeat, username) {
repeat.times {
builder.person(name: username)
}
}
println writer.toString()
输出将是:
<books>
<person name="mrhaki"/>
<person name="mrhaki"/>
</books>