Как динамически внедрить дочерние узлы в Groovy MarkupBuilder?
Я пытаюсь использовать Groovy MarkupBuilder для динамического создания моей собственной структуры XML, как показано ниже.
<envelope>
<header>
<key1>value1</key1>
</header>
<body>
<payload />
</body>
</envelope>
Хотя я работал с приведенным ниже кодом, я хотел бы динамически внедрить часть кода "полезной нагрузки" в отдельный класс, где "строитель" передается в качестве параметра метода.
def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
builder.envelope{
header{
key1("value1")
}
body{
payload(){
}
}
}
println writer.toString ()
1 ответ
Решение
Это то, что вы ищете?
import groovy.xml.MarkupBuilder
def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
builder.envelope {
header{
key1("value1")
}
body {
method(builder)
}
}
println writer.toString()
def method(b) {
b.payload2()
}