首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Groovy中向现有XML添加CDATA内容

如何在Groovy中向现有XML添加CDATA内容
EN

Stack Overflow用户
提问于 2017-05-15 22:35:10
回答 2查看 893关注 0票数 1

我尝试用google搜索它,但我猜我是第一个讨论这个问题的人;)我找到了StreamingMarkupBuilder,但它主要用于创建一个我不需要的新XML。我不知道如何添加而不是创建。

所以我有了我漂亮的XML:

代码语言:javascript
复制
<root>
  <ducks>
    <rubberduck />
  </ducks>
</root>

我想要的就是为我的橡皮鸭添加一个CDATA

代码语言:javascript
复制
<root>
  <ducks>
    <rubberduck><![CDATA[Best Duck Ever!]]></rubberduck>
  </ducks>
</root>

首先,我使用了XmlSlurperreplaceBody,但这将占用CDATA-tag的空间。

那么,我如何才能简单地在Groovy中添加一个CDATA,这在我的how服务请求中是必需的呢?在Java中,我只会使用ducksNode.appendChild(rootDoc.createCDATASection("...."))

我已经习惯了Groovy比Java更容易、更快。

EN

回答 2

Stack Overflow用户

发布于 2017-05-15 22:39:12

基本上,您可以在Java中做任何事情,在Groovy中也可以这样做,至少大致相同。

但是,为什么需要将其设置为CDATA部分呢?只需设置文本,Groovy将自动转义需要转义的字符,这将使CDATA部分过时。

票数 0
EN

Stack Overflow用户

发布于 2017-05-16 08:30:16

mkp.yieldUnescaped中使用groovy.xml.MarkupBuilder

代码语言:javascript
复制
import groovy.xml.*

def sw = new StringWriter()
def builder = new MarkupBuilder(sw)

builder.root {
    ducks {
        rubberduck {
            mkp.yieldUnescaped("<![CDATA[" + "Best Duck Ever!" + "]]>")
        }
    }
}

println sw.toString()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43982208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档