Groovy > Groovy TIPS

更新日 2013-02-06
広告
XMLを生成し、Stringオブジェクトに変換する例(sample.groovy)を示します。
import groovy.xml.MarkupBuilder

def test01() { 
  println "test01"
  def writer = new StringWriter()
  def builder = new MarkupBuilder(writer)
  
  builder.members() {
  }
  
  // <members />
  println writer.toString()
  println ""
}

def test02() { 
  println "test02"
  def writer = new StringWriter()
  def builder = new MarkupBuilder(writer)

  builder.members() { 
    human()
  }

  //<members>
  //  <human />
  // </members>
  println writer.toString()
  println ""
}

def test03() {
  println "test03"
  def writer = new StringWriter()
  def builder = new MarkupBuilder(writer)

  builder.members() { 
    human() { 
    }
  }

  // same as test02
  println writer.toString()
  println ""
}

def test04() {
  println "test04"
  def writer = new StringWriter()
  def builder = new MarkupBuilder(writer)

  builder.members() { 
    (1..2).each { 
      human()
    }
  }

  // <members>
  //  <human />
  //  <human />
  //</members>
  println writer.toString()
  println ""
}

def test05() {
  println "test05"
  def writer = new StringWriter()
  def builder = new MarkupBuilder(writer)

  builder.members() { 
    (1..2).each { 
      human(age: it)
    }
  }

  //<members>
  //  <human age='1' />
  //  <human age='2' />
  //</members>
  println writer.toString()
  println ""
}

def test06() {
  println "test06"
  def writer = new StringWriter()
  def builder = new MarkupBuilder(writer)

  builder.members() { 
    human() { 
      age(5)
    }
  }

  //<members>
  //  <human>
  //    <age>5</age>
  //  </human>
  //</members>
  println writer.toString()
  println ""
}


test01()
test02()
test03()
test04()
test05()
test06()
実行結果は以下のようになります。
$ groovy sample.groovy
test01
<members />

test02
<members>
  <human />
</members>

test03
<members>
  <human />
</members>

test04
<members>
  <human />
  <human />
</members>

test05
<members>
  <human age='1' />
  <human age='2' />
</members>

test06
<members>
  <human>
    <age>5</age>
  </human>
</members>
このように、プログラムで簡単にXMLを作成できます。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system