我正在使用像这样的Closures构建Xml构建:
def buildRequestXml {
def RequestXml{ //add namespace and version attribute on root
FirstName("Name1")
LastName("Name2")
DOB("12/19/1983") //add attribute format="mm/dd/yyyy"
}
return new StreamingMarkupBuilder().bind(RequestXml)
}
我该怎么做?
答案 0 :(得分:1)
请参阅: Creating XML using Groovy's MarkupBuilder。特别是关于“名称空间感知示例”的部分。
基本上,你就像tim_yates上面告诉你的那样,但是手工命名/命名空间:
import groovy.xml.*
def buildRequestXml() {
def requestXml = { //add namespace and version attribute on root
mkp.xmlDeclaration()
'test:root'('xmlns:test': 'urn:blah') {
FirstName("Name1")
LastName("Name2")
DOB("12/19/1983") //add attribute format="mm/dd/yyyy"
}
}
new StreamingMarkupBuilder().bind( requestXml )
}
println buildRequestXml()
这是特殊的单引号语法,允许您将冒号放在名称中。这就是你如何在groovy中给出无效java语法的变量名。有关更多信息,请参阅this post。
答案 1 :(得分:0)
你的意思是这样吗?
import groovy.xml.*
def buildRequestXml() {
def requestXml = { //add namespace and version attribute on root
mkp.xmlDeclaration()
root {
FirstName("Name1")
LastName("Name2")
DOB("12/19/1983") //add attribute format="mm/dd/yyyy"
}
}
new StreamingMarkupBuilder().bind( requestXml )
}
println buildRequestXml()
或XmlUtil.serialize
为你添加它我相信......