3

我想在下面生成xml。我不想通过重复相同的代码在 xpm 和 MyRoot 中添加 xsv 块。相反,我想调用一个方法或闭包,以便它将返回可以添加到相应父节点(MyRoot 和 xpm)中的 xsv 块

<MyRoot>
   <xsv>
      <action>create</action>
      <actionID>4</actionID>
   </xsv>
   <xpm>
      <xsv>
         <action>create</action>
         <actionID>4</actionID>
      </xsv>
   </xpm>
</MyRoot>
4

1 回答 1

3

试试下面的一段代码:

import groovy.xml.MarkupBuilder

def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
def out = builder.MyRoot { 
   addXsv(builder, 'create', 4)
      xpm() {
         addXsv(builder, 'drop', 5)
      }
   }

def addXsv(builder, name, id) {
   builder.xsv() {
      action name
      actionID id
   }
}

println writer
于 2015-03-01T07:32:05.420 回答