【发布时间】:2011-09-13 14:36:23
【问题描述】:
我正在设置一个基于特定于每个呼叫实例的 XML 文件启动电话呼叫的应用程序。出于测试目的,我使用 Groovy MarkupBuilder 和 StringWriter 方法将我的 XML 写入单个文件,然后在下次启动调用时覆盖该文件。
但是,这在生产中不起作用,因为我们将覆盖当前正在使用的 XML。因此,我想通过以下方式在控制器中动态创建 XML:
callInstance.createXml()
使用“createXml”方法,其中包含如何为每个调用专门呈现 XML 的规则。
我发现很多人询问如何将对象转换为动态创建的 XML 文件,但这有点不同,因为我必须使用 MarkupBuilder。
为了快速参考,下面是我正在使用的小示例:
def f1 = new File('filename')
f1.delete()
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.doubleQuotes = true
xml.vxml(version:'2.1'){
property(name:"termchar", value:"#")
var(name:"hi", expr:"'Hello!'")
xml.form(){
block(){
value(expr:"hi")
xml.goto(next:"#next") //etc, etc
}
}
}
//break
f1.createNewFile()
f1 << writer.toString()
提前致谢!
【问题讨论】:
-
你见过this article吗? 3 岁了,但它仍然有一些很好的信息。