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