2010-03-30 11 views
1

Existe-t-il un moyen de contrôler la sortie de MarkupBuilder de groovy et de filtrer les caractères de retour à la ligne? J'ai le code comme ci-dessous:Supprimer les retours à la ligne du résultat MarkupBuilder

import groovy.xml.MarkupBuilder 

def writer = new StringWriter() 
def xml = new MarkupBuilder(writer) 
xml.basket(){ 
    fruit (type:"apple", 1) 
    fruit (type:"orange", 2)  
} 

qui sort invariablement:

<basket> 
    <fruit type='apple'>1</fruit> 
    <fruit type='orange'>2</fruit> 
</basket> 

Je voudrais vraiment dans une seule ligne:

<basket><fruit type='apple'>1</fruit><fruit type='orange'>2</fruit></basket> 

Répondre

2

Vous pouvez le faire avec StreamingMarkupBuilder:

import groovy.xml.StreamingMarkupBuilder 

def xml = new StreamingMarkupBuilder().bind { 
    basket(){ 
    fruit (type:"apple", 1) 
    fruit (type:"orange", 2)  
    } 
} 
println xml.toString() 

Qui imprime

<basket><fruit type='apple'>1</fruit><fruit type='orange'>2</fruit></basket>