2011-09-06 121 views
2

我似乎無法弄清楚如何創建非硬編碼的節點。例如:Grails:使用變量創建XML節點

def aval = "someValue" 
def xml = new MarkupBuilder() 

xml.outTag(attr: aval) // outTag is hardcoded 

我的問題是:如果我不知道該節點的名稱(如在我的例子,如果我想要什麼outTag是一個變量)。當我讀取一個目錄/文件並從中創建一個XML時,我正在使用它。謝謝。

回答

7

使用此格式:

import groovy.xml.MarkupBuilder 

def dynamicTag = "blah" 
def aval = "someValue" 
def xml = new MarkupBuilder() 

xml."$dynamicTag"(attr: aval) 

這個工作對我(的Groovy 1.8)

+0

感謝。這工作。出於某種奇怪的原因,我找不到這是任何教程。我很感激幫助。 – ibaralf

+0

太棒了!由於此工作,請將此回覆標記爲「已接受」! – OverZealous

+0

它工作的原因是您可以使用動態表示法對象調用任何方法。「$ methodName」其中,methodName是一個字符串變量,其中的方法名稱爲value – Uberto