2014-12-13 100 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() 
} 
相關問題