xml - 使用 StreamingMarkupBuilder 创建 <use> 标签

标签 xml groovy markupbuilder

我正在使用 StreamingMarkupBuilder 生成 XML,并且我需要一个标签。不幸的是我遇到了异常:

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

最佳答案

您必须使用构建器作为关键字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>

关于xml - 使用 StreamingMarkupBuilder 创建 <use> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11099292/

相关文章:

xml - 为什么此xpath与该文本节点匹配?

grails - 不能对具有JSON对象的类使用不可变注释

grails - MarkupBuilder 从字符串渲染

html - 检测 Groovy each{} 闭包中的第一个和最后一个项目

android - 更改 API 19 及以下版本的 RadioButton 颜色?

java - 如何以用户友好的方式显示 Android 按钮?

java - 我可以从 xml 获取选定的标签并下载该值吗?

hibernate - 如何创建 findAllByUser 查询,其中用户是嵌入类的成员?

grails - Google Calendar API 事件地点

xml - Grails:使用变量创建 XML 节点