2010-06-18 30 views
2

有沒有從前面的回答修改代碼的方式Groovy的MarkupBuilder的標籤

import groovy.xml.MarkupBuilder 

def writer = new StringWriter() 
def builder = new MarkupBuilder(writer) 

def awaiting = ['one', 'two', 'three'] 

builder.html { 
    ul { 
     awaiting.each { 
      li(it.toString()) 
     } 
    } 
} 

println writer.toString() 

因此,如果您添加一個標籤,而不是說你把它 - 就像

builder.html{ 
tag{ 
    awaiting.each{} 
    } 
} return result 

可能是「醇'或'ul'例如

回答

2

您可以依靠GStrings以及您可以通過其字符串值調用函數的事實。

import groovy.xml.MarkupBuilder 

def writer = new StringWriter() 
def builder = new MarkupBuilder(writer) 

def awaiting = ['one', 'two', 'three'] 
def tag = 'ol' 

builder.html { 
    "$tag" { 
     awaiting.each { 
      li(it.toString()) 
     } 
    } 
} 

println writer.toString() 
+0

星.. 我知道那裏會有人離開,但一如往常第一步似乎需要很長時間才能沉入... – 2010-06-18 12:50:16

0

你也可以使用invokeMethod,它比上面更明確,儘管時間稍長一些。

builder.html { 
    invokeMethod(tag) { 
    awaiting.each { 
     li it 
} } } 
相關問題