在《
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
山風小子 閱讀(2529)
評論(2) 編輯 收藏 所屬分類:
Groovy & Grails