Groovy实现XML文件生成非常直观方便,见下面例子:
import groovy.xml.MarkupBuilder
//定义一个文件
def out = new File('out.xml')
def writer = new FileWriter( out )
def xml = new MarkupBuilder( writer )
def map = ["01":"刘备","02":"关羽","03":"张飞"];
xml.persons {
map.keySet().each {ele ->
xml.person(id:ele) {
name(map.get(ele));
}
}
}
输出文件内容是:
<persons>
<person id='01'>
<name>刘备</name>
</person>
<person id='02'>
<name>关羽</name>
</person>
<person id='03'>
<name>张飞</name>
</person>
</persons>
这个例子中,体现Groovy的语法的超强的灵活性,对于MarkBuilder这个类来说,可以说支持任何方法,这个类只是
把方法、参数作为xml格式的数据来输出,方法成为元素名,而参数成为属性,方法的语句体,会进一步演变为子元素。
这样的灵活性,使得生成XML非常直观。