Creating <use> tag with StreamingMarkupBuilder

自古美人都是妖i 提交于 2019-12-11 03:48:18

问题


I am using StreamingMarkupBuilder to produce XML and I need to have a tag. Unfortunately I get exception :

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

any ideas how I can create such tag?

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()

回答1:


You have to use the builder as a prefix to the keyword use, ie:

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

println xml.toString()

prints:

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


来源:https://stackoverflow.com/questions/11099292/creating-use-tag-with-streamingmarkupbuilder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!