【问题标题】:Groovy StreamingMarkupBuilder output XML separatorGroovy StreamingMarkupBuilder 输出 XML 分隔符
【发布时间】:2017-05-08 07:52:52
【问题描述】:

我目前在我的 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>

有人给我小费吗?

谢谢马尔科

【问题讨论】:

    标签: xml groovy streamingmarkupbuilder


    【解决方案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而不是空格。

    【讨论】:

    • 非常感谢! join(' ') 完成这项工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    相关资源
    最近更新 更多