我试图谷歌它,但我想我是第一个关于这个问题的人;)我发现StreamingMarkupBuilder
但这主要用于创建一个我不需要的新XML。而且我无法弄清楚如何添加而不是创建。
所以我有我漂亮的XML:
<root>
<ducks>
<rubberduck />
</ducks>
</root>
我想要的只是为我的rubberducky添加CDATA
:
<root>
<ducks>
<rubberduck><![CDATA[Best Duck Ever!]]></rubberduck>
</ducks>
</root>
首先我使用了XmlSlurper
和replaceBody
但这会占用CDATA
- 标记。
那我怎么能简单地在Groovy中添加一个CDATA,这在我的webservice请求中是必需的?在Java中我会使用
ducksNode.appendChild(rootDoc.createCDATASection("...."))
我已经习惯了Groovy比Java更容易和更快。
答案 0 :(得分:0)
基本上你至少可以用Groovy或者更少或更少的方式做你在Java中可以做的任何事情。
但为什么你需要把它作为CDATA
部分呢?只需设置文本,Groovy就会转义需要自动转义的字符,这会使CDATA
部分过时。
答案 1 :(得分:0)
groovy.xml.MarkupBuilder
与mkp.yieldUnescaped
:
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()