在《Groovy高效编程——生成XML文件》中,我给你们介绍了Groovy中MarkupBuilder的用法,在这篇随笔中,我将使用StreamingMarkupBuilder来生成更复杂的XML文件:编程
import groovy.xml.StreamingMarkupBuilderide
def friendList = ['Tony', 'Alan', 'Leona', 'Cloudy']
def xml = new StreamingMarkupBuilder().bind {
mkp.pi(xml: "version='1.0' encoding='UTF-8'")
mkp.declareNamespace(ns:" ")
person {
ns.name(type: "nickname", "BlueSUN")
ns.address "Shanghai"
ns.friends(num: friendList.size()) {
for (f in friendList) {
ns.friend f
}
}
}
}
println xmlui
运行结果:spa
<?xml version="1.0" encoding="UTF-8"?>
<person xmlns:ns="">
<ns:name type="nickname">BlueSUN</ns:name>
<ns:address>Shanghai</ns:address>
<ns:friends num="4">
<ns:friend>Tony</ns:friend>
<ns:friend>Alan</ns:friend>
<ns:friend>Leona</ns:friend>
<ns:friend>Cloudy</ns:friend>
</ns:friends>
</person>
代码和运行结果有着十分明显的关联关系,因此使用StreamingMarkupBuilder和MarkupBuilder来生成XML文件是十分方便的。注意StreamingMarkupBuilder要比MarkupBuilder强大许多,但生成的XML的文件不‘漂亮’,若是生成的XML是用于程序配置的,不是给人看的,那么我强烈推荐使用StreamingMarkupBuilder。你们能够将《Groovy高效编程——生成XML文件》中的练习用StreamingMarkupBuilder来实现一下
xml