First they ignore you
then they ridicule you
then they fight you
then you win
    -- Mahatma Gandhi
Chinese => English     英文 => 中文             
随笔-221  评论-1047  文章-0  trackbacks-0
在《Groovy高效编程——生成XML文件》中,我给大家介绍了Groovy中MarkupBuilder的用法,在这篇随笔中,我将使用StreamingMarkupBuilder来生成更复杂的XML文件:


import groovy.xml.StreamingMarkupBuilder

def friendList 
= ['Tony''Alan''Leona''Cloudy']
def xml 
= new StreamingMarkupBuilder().bind { 
    mkp.pi(xml: 
"version='1.0'  encoding='UTF-8'"
    
    mkp.declareNamespace(ns:
"http://www.ebay.com")
    person {
        ns.name(type: 
"nickname""BlueSUN")
        ns.address 
"Shanghai"
        ns.friends(num: friendList.size()) {
            
for (f in friendList) {
                ns.friend f
            }
        }
    }
}
println xml

运行结果:

<?xml version="1.0" encoding="UTF-8"?>
<person xmlns:ns="http://www.ebay.com">
    
<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来实现一下 :)

附:朝花夕拾——Groovy & Grails



posted on 2007-08-18 10:16 山风小子 阅读(2524) 评论(2)  编辑  收藏 所属分类: Groovy & Grails