加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy 生成xml文件(使用MarkupBuilder)

发布时间:2020-12-14 16:43:08 所属栏目:大数据 来源:网络整理
导读:上一篇介绍了如何使用Groovy解析xml文件,本文再介绍如何生成xml文件。与解析xml一样,Groovy也提供了两种方式MarkupBuilder和StreamingMarkupBuilder。一般而言StreamingMarkupBuilder更专业,功能更全。他们的区别有点类似于DOM和SAX, 也就说处理较大的xm
上一篇介绍了如何使用Groovy解析xml文件,本文再介绍如何生成xml文件。与解析xml一样,Groovy也提供了两种方式MarkupBuilder和StreamingMarkupBuilder。一般而言StreamingMarkupBuilder更专业,功能更全。他们的区别有点类似于DOM和SAX, 也就说处理较大的xml文件,StreamingMarkupBuilder性能更好, 不过一般情况下,区别不大。 下面我们以MarkupBuilder为例。

代码

import groovy.xml.MarkupBuilder

class 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","UniversityA")
                        phase(from:"2011","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>

运行截图

这里写图片描述

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读