【问题标题】:Groovy XML MarkupBuilder does not create root <?xml .... ?>Groovy XML MarkupBuilder 不会创建根 <?xml .... ?>
【发布时间】:2013-05-22 13:48:30
【问题描述】:

我正在使用 XML MarkupBuilder 生成 XML 文件

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

....

def xmlObj = new StringWriter()
def xml = new MarkupBuilder(xmlObj)
xml.book("id":21){
    name('bookname')
}

我得到了输出:

<book id='21'>
    <name>bookname</name>
</book>

如何让它也生成根 xml 标记?

<?xml version="1.0" encoding="utf-8"?>

【问题讨论】:

    标签: xml grails groovy


    【解决方案1】:

    您也可以使用 MarkupBuilder 添加 xml 声明:

    def xml = new MarkupBuilder(xmlObj)
    xml.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8")
    xml.book("id":21){
        name('bookname')
    }
    

    【讨论】:

    • 所以我猜我所做的不是正确的方法:xmlObj.write(" \n")
    【解决方案2】:

    你需要自己添加

    def xml = new StreamingMarkupBuilder().bind{
            mkp.xmlDeclaration()
            task {
                id(_Id)
                name("clean")
            }
        }
    

    【讨论】:

    • 详细说明,mkp 在构建器闭包中可用于访问 MarkupBuilderHelper,其中包括 xmlDeclaration 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多