2014-12-13 3 views
1

Я пытаюсь использовать Groovy MarkupBuilder для динамического создания моей пользовательской структуры XML, как показано ниже.Как динамически вводить дочерние узлы в Groovy MarkupBuilder?

<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() 
} 
Смежные вопросы