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>

Я хочу получить следующее - каждый элемент отделен пустым или предопределенным разделителем

<NameFormatted>
  Name1 Name2 Name3
</NameFormatted>

У кого-нибудь есть совет для меня?

Спасибо Марко

1 ответ

Решение

Пожалуйста, попробуйте следующим образом:

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 вместо места.

Другие вопросы по тегам