我正在使用Groovy XmlStreamingMarkupBuilder
为工作监视系统构建一些xml。但是,名称空间在我继承的架构中绑定到xmlns。解析器抛出错误,抱怨我无法显式绑定到xmlns。有没有办法解决这个问题?代码如下:如果将xmlns更改为其他代码,则可以正常工作。
Object buildJobsXml() {
markupBuilder.useDoubleQuotes = true
def jobsXml = markupBuilder.bind{ builder ->
mkp.xmlDeclaration()
namespaces << [xmlns:'http://fancy-web-paraphernalia']
jobs{
version('3.0')
jobId('id')
}
}
return jobsXml
}
我能够设置名称空间,但是它级联到每个元素,我只希望它在最外面的元素中。这就是我所做的。我使用了空的双引号,并且允许将名称空间设置为
xmlns:"http://fancy-web-paraphernalia"
但是,它现在出现在所有我不想要的元素中
Object buildJobsXml() {
markupBuilder.useDoubleQuotes = true
def jobsXml = markupBuilder.bind{
mkp.xmlDeclaration()
namespaces << ["":'http://fancy-web-paraphernalia']
jobs{
version('3.0')
jobId('id')
}
}
return jobsXml
}
答案 0 :(得分:0)
这有效。如果有更好的方法,请发布您的解决方案
Object buildJobsXml() {
markupBuilder.useDoubleQuotes = true
def jobsXml = markupBuilder.bind{
mkp.xmlDeclaration()
jobs(xmlns:"http://fancy-web-paraphernalia"){
version('3.0')
jobId('id')
}
}
def result = XmlUtil.serialize(jobsXml)
println "${result}"
}