Я настраиваю приложение, которое инициирует телефонные звонки на основе файлов 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()
Заранее спасибо!