xml – 在初始创建后将元素添加/插入到Groovy MarkupBuilder对象
发布时间:2020-12-16 23:21:09 所属栏目:百科 来源:网络整理
导读:我理解如何使用MarkupBuilder在Groovy中创建 XML.在初始创建后如何向MarkupBuilder对象添加/插入元素?例如,从以下开始: def builder = new MarkupBuilder(writer) def items = builder.items{ item(name: "book") } 哪会产生: items item name="book/ /it
我理解如何使用MarkupBuilder在Groovy中创建
XML.在初始创建后如何向MarkupBuilder对象添加/插入元素?例如,从以下开始:
def builder = new MarkupBuilder(writer) def items = builder.items{ item(name: "book") } 哪会产生: <items> <item name="book/> </items> 我正在尝试创建一个可扩展的基本XML消息,使用核心类来包装构建器和继承以添加特定标记.基于上面的例子,这是我的基类: Class ItemBuilder{ def name; def builder = new MarkupBuilder(writer) public Object getXML(){ def items = builder.items{ item(name: this.name) } return items; } } 这是一个示例扩展消息构建器: Class SubItemBuilder extends ItemBuilder{ def type; public Object getXML(){ def items = super.getXML(); //do something here to add a subitem child tag.... return items; } } 如果我在JavaScript中使用JSON,我会做类似的事情: items.item.subitem = "foo" 我最终希望SubItemBuilder.getXML生成: <items> <item name="book> <subitem type="paperback"/> </item> </items> 有没有简单的方法来实现这一目标?看起来像一个选项是子类MarkupBuilder并添加公共方法来插入子节点.有没有更好的方法来实现我正在寻找的结果? 解决方法
食谱示例使用
MarkupBuilder for Agile XML Creation显示了如何创建接近我需要的东西.
例如: import groovy.xml.MarkupBuilder def writer = new StringWriter() def builder = new MarkupBuilder(writer) def subitem (builder){ builder.subitem(type: "paperback") } def items = builder.items{ item(name: "book") subitem(builder) } println writer.toString()? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |