The Apache Groovy programming language - Processing XML
Groovy 分别使用 MarkupBuilder、XMLParser 来进行XML标记的构建和解析;
如需要创建以下的XML树:
<studentList createDate='2017-9-20'>
<student>
<id>26317837</id>
<name>assad</name>
<age>20</age>
<city>Guangzhou</city>
</student>
</StudentList>
创建代码如下,构建XML树对象,并保存到文件:
class CreateAndSave {
static void main(String[] args){
def builder = new MarkupBuilder(new PrintWriter("./studentList.xml"));
//def builder = new MarkupBuilder(); 空参数会直接将XML树打印到标准输出
//直接生成字符串 def build = newMarkupBuilder(strings); println string;
builder.studentList(createDate:'2017-9-20'){
student{
id('26317837')
name('assad')
age('20')
city('Guangzhou')
}
}
}
}
以上 MarkupBuilder 用于创建一个XML树构造器对象,builder 使用 . 连接一个节点(后添加的节点会依据前面节点的规则而决定所处的位置),每一个节点后的(attribute:'value')用于定义该节点的属性,('value')用于定义该节点的值,{ }内用于定义该节点的子节点;
如果要实现批量创建节点,类似以下的XML树,可以采用类似如下的方式:
<studentList createDate='2017-9-20'>
<student>
<id>1263781</id>
<name>assad</name>
<age>20</age>
<city>Guangzhou</city>
</student>
<student>
<id>3729321</id>
<name>Kim</name>
<age>21</age>
<city>Shenzhen</city>
</student>
<student>
<id>3729329</id>
<name>Vency</name>
<age>22</age>
<city>Shanghai</city>
</student>
</studentList>
CreateAndSave.groovy
class CreateAndSave {
static void main(String[] args){
//储存student数据
def students = [ ['1263781','assad','20','Guangzhou'],
['3729321','Kim','21','Shenzhen'],
['3729329','Vency','22','Shanghai'] ];
def builder2 = new MarkupBuilder(new PrintWriter('./studentList2.xml'));
//构建XML树
builder2.studentList(createDate:'2017-9-20'){
students.each{ //迭代添加 <student> 节点
element -> builder2.student{
id(element[0])
name(element[1])
age(element[2])
city(element[3])
}
}
}
}
}