groovy生成Xml报文


使用MarkupBuilder创建xml报文的builder,参数为Writer对象

@Test
void test1() {
    def writer = new StringWriter()
    def builder = new MarkupBuilder(writer)
    builder.mkp.xmlDeclaration(version: "1.0", encoding: "UTF-8")
    builder.Packet(type: "REQUEST", version: "1.0") {
        Head {
            User("user")
            Password("password")
        }
        Body(_body())
    }
    String result = writer.toString()
    println result
}

Closure _body() {
    {
        content {
            inner ("inner")
        }
        outer ("outer")
    } as Closure
}
  • xmlDeclaration可以声明xml格式
  • 字段后大括号对应一个新的子节点
  • 字段后小括号中内容表示该字段对应的值
  • 字段后小括号内容可以传递一个闭包,闭包中内容规则和上面一致

输出结果为:

<?xml version='1.0' encoding='UTF-8'?>

  
    user
    password
  
  
    
      inner
    
    outer