Groovy 生成xml文件(使用MarkupBuilder)

来源:互联网 发布:拓普康332n软件 编辑:程序博客网 时间:2024/05/16 01:29
上一篇介绍了如何使用Groovy解析xml文件,本文再介绍如何生成xml文件。与解析xml一样,Groovy也提供了两种方式MarkupBuilder和StreamingMarkupBuilder。一般而言StreamingMarkupBuilder更专业,功能更全。他们的区别有点类似于DOM和SAX, 也就说处理较大的xml文件,StreamingMarkupBuilder性能更好, 不过一般情况下,区别不大。 下面我们以MarkupBuilder为例。

代码

import groovy.xml.MarkupBuilderclass XmlWriter {    public static main(def args){        def strXml = new StringWriter()        MarkupBuilder mb  = new groovy.xml.MarkupBuilder(strXml);        //mb.'?xml'(version:"1.0", encoding:"UTF-8")        mb.interview{            data{                person(id:"05891", comments:"social recruitment"){                    title{                        position(code:"P7","Staff SE")                    }                    age("29")                    assessment(interviewer:"manager1", "tech is ok")                    experience{                        phase(from:"2012", to:"now", "CompanyA")                        phase(from:"2010", to:"2012", "CompanyB")                    }                }                person(id:"05892", comments:"campus recruitment"){                    title{                        position(code:"P6","SE")                    }                    age("25")                    assessment(interviewer:"manager2", "tech is ok")                    experience{                        phase(from:"2012", to:"now", "UniversityA")                        phase(from:"2011", to:"2012", "CompanyB")                    }                }            }            interviewInfo{                date("2016-10-12")                address("meetingroom 402")                organizator(dept:"cloud","ZhangSan")            }        }        print strXml        def xmlFile = "output.xml"        PrintWriter pw = new PrintWriter(xmlFile)        pw.write(strXml.toString())        pw.close()    }}

生成的xml文件

<interview>  <data>    <person id='05891' comments='social recruitment'>      <title>        <position code='P7'>Staff SE</position>      </title>      <age>29</age>      <assessment interviewer='manager1'>tech is ok</assessment>      <experience>        <phase from='2012' to='now'>CompanyA</phase>        <phase from='2010' to='2012'>CompanyB</phase>      </experience>    </person>    <person id='05892' comments='campus recruitment'>      <title>        <position code='P6'>SE</position>      </title>      <age>25</age>      <assessment interviewer='manager2'>tech is ok</assessment>      <experience>        <phase from='2012' to='now'>UniversityA</phase>        <phase from='2011' to='2012'>CompanyB</phase>      </experience>    </person>  </data>  <interviewInfo>    <date>2016-10-12</date>    <address>meetingroom 402</address>    <organizator dept='cloud'>ZhangSan</organizator>  </interviewInfo></interview>

运行截图
这里写图片描述

0 0
原创粉丝点击