11

我见过很多使用 GroovyMarkupBuilder构建 XML 文档的示例,但它们似乎都对文档中的每个元素使用静态属性(属性名称在编译时都是已知的)。如果我试图构建一个属性名称直到运行时才知道的 XML 文档,该怎么办?我还没有弄清楚解决此类问题所需的语法。

4

1 回答 1

7

以属性名称作为键的映射应该做到这一点。您需要将键括在大括号中,以便 Groovy 知道您的意思是使用值a而不是键a

import groovy.xml.MarkupBuilder

new MarkupBuilder().root {
  def a = 'dynAttr'
  node( [ (a):'woo' ] )
}

会产生:

<root>
  <node dynAttr='woo' />
</root> 
于 2012-10-09T07:50:58.917 回答