1

我目前在我的 groovy 脚本中使用StreamingMarkupBuilder来生成我的输出 XMl。效果很好,但是当我在源消息中有多个同名的元素时,我可以选择添加分隔符吗?

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

我通过以下方式使用它:

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

在我的输出中,我收到:

<NameFormatted>
   Name1Name2Name3
</NameFormatted>

我想收到以下内容 - 每个元素由空白或预定义的分隔符分隔

<NameFormatted>
  Name1 Name2 Name3
</NameFormatted>

有人给我小费吗?

谢谢马可

4

1 回答 1

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代替空格。

于 2017-05-08T08:18:26.907 回答