2017-05-08 77 views
1

我目前在我的groovy腳本中使用StreamingMarkupBuilder來產生我的輸出XMl。工作得很好,但是當源信息中有多個具有相同名稱的元素時,是否有添加分隔符的選項?Groovy StreamingMarkupBuilder輸出XML分隔符

<Organisation> 
    <Name>Name1</Name> 
    <Name>Name2</Name> 
    <Name>Name3</Name> 
</Organisation>` 

我使用的方式如下:

builder.OrganisationName{ 
    NameFormatted Organisation.Name.toString() 
} 

在我的輸出我得到:

<NameFormatted> 
    Name1Name2Name3 
</NameFormatted> 

我想receveive如下 - 每個元素的空白或預分離定義分離器

<NameFormatted> 
    Name1 Name2 Name3 
</NameFormatted> 

有人給我提示嗎?

感謝馬爾科

回答

0

請通過以下方式嘗試:

import groovy.util.XmlSlurper 
import groovy.xml.StreamingMarkupBuilder 
import groovy.xml.XmlUtil 

def slurped = new XmlSlurper().parseText('''<Organisation> 
    <Name>Name1</Name> 
    <Name>Name2</Name> 
    <Name>Name3</Name> 
</Organisation>''') 

println slurped.Name 

def builder = new StreamingMarkupBuilder() 
def output = builder.bind { 
    OrganisationName { 
     NameFormatted slurped.Name.join(' ') 
    } 
} 
println XmlUtil.serialize(output) 

其它分離也可以傳遞給join,而不是空間。

+0

非常感謝!加入('')完成這項工作。 – Marco