2009-09-23 8 views
0

J'ai un simple script groovy qui génère xmlgénérer xml bien formaté avec groovy

def builder = new groovy.xml.StreamingMarkupBuilder() 
def person1 = { 
person(id:99){ 
firstname("John") 
lastname("Smith") 
} 
} 
def person2 = { 
person(id:100){ 
firstname("Jane") 
lastname("Doe") 
} 
} 
def personList = { 
"person-list" { 
out << person1 
out << person2 
} 
} 
println builder.bind(personList) 

Cependant, lorsque ce xml est imprimé ... il imprime tout en une seule ligne. Donc, la sortie est:

<person-list><person id='99'>test</person><person id='100'><firstname>Jane</firstname><lastname>Doe</lastname></person></person-list> 

Existe-t-il un moyen d'imprimer ceci de manière bien formatée comme suit?

<person-list> 
     <person id='99' > 
     <firstname>John</firstname> 
     <lastname>Smith</lastname> 
     </person> 
     <person id='100' > 
     <firstname>Jane</firstname> 
     <lastname>Doe</lastname> 
     </person> 
</person-list> 

Répondre

1

Essayez

println XmlUtil.serialize 

fonction

est ici Groovy doc