2012-06-19 45 views
2

我正在使用StreamingMarkupBuilder生成XML,我需要有一個標記。不幸的是我得到了異常:使用StreamingMarkupBuilder創建<use>標記

Caught: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.lang.Class 

任何想法如何創建這樣的標籤?

import groovy.xml.StreamingMarkupBuilder 
import org.custommonkey.xmlunit.* 
import groovy.xml.XmlUtil 

def xml = new StreamingMarkupBuilder().bind{ 
'use'(name:'Name', type:'type', year:2006) { 
    desc('desc') 
} 

} 

println xml.toString() 

回答

3

你必須使用的建設者作爲前綴的關鍵字use,即:

def xml = new StreamingMarkupBuilder().bind { smb -> 
    smb.use(name:'Name', type:'type', year:2006) { 
    desc('desc') 
    } 
} 

println xml.toString() 

打印:

<use name='Name' type='type' year='2006'><desc>desc</desc></use> 
+0

它的工作原理謝謝 – wonglik