2010-03-30 43 views
1

有沒有辦法控制groovy的MarkupBuilder輸出並過濾掉換行符?我有一個像下面的代碼:從MarkupBuilder結果中刪除換行

import groovy.xml.MarkupBuilder 

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

它總是輸出:

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

我真的很喜歡它在一個單行:

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

回答

2

你可以用StreamingMarkupBuilder做到這一點:

import groovy.xml.StreamingMarkupBuilder 

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

打印出來

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