我尝试用google搜索它,但我猜我是第一个讨论这个问题的人;)我找到了StreamingMarkupBuilder,但它主要用于创建一个我不需要的新XML。我不知道如何添加而不是创建。
所以我有了我漂亮的XML:
<root>
<ducks>
<rubberduck />
</ducks>
</root>我想要的就是为我的橡皮鸭添加一个CDATA:
<root>
<ducks>
<rubberduck><![CDATA[Best Duck Ever!]]></rubberduck>
</ducks>
</root>首先,我使用了XmlSlurper和replaceBody,但这将占用CDATA-tag的空间。
那么,我如何才能简单地在Groovy中添加一个CDATA,这在我的how服务请求中是必需的呢?在Java中,我只会使用ducksNode.appendChild(rootDoc.createCDATASection("...."))
我已经习惯了Groovy比Java更容易、更快。
发布于 2017-05-15 22:39:12
基本上,您可以在Java中做任何事情,在Groovy中也可以这样做,至少大致相同。
但是,为什么需要将其设置为CDATA部分呢?只需设置文本,Groovy将自动转义需要转义的字符,这将使CDATA部分过时。
发布于 2017-05-16 08:30:16
在mkp.yieldUnescaped中使用groovy.xml.MarkupBuilder
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()https://stackoverflow.com/questions/43982208
复制相似问题