2017-05-08 13 views
1

私は現在、groovyスクリプトStreamingMarkupBuilderで出力XMlを生成しています。すべてうまく動作しますが、ソースメッセージに同じ名前の複数の要素がある場合は、区切り文字を追加するオプションがありますか?私の出力でGroovy StreamingMarkupBuilder出力XMLセパレータ

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

私が受け取る: - 各要素は空白または前で区切ら

<NameFormatted> 
    Name1Name2Name3 
</NameFormatted> 

私は次のことをreceveiveしたい、私は次のようにそれを使用

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

限定セパレータ

<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

ありがとうございます! join( '')はジョブを行います。 – Marco