我真的被困在这里。我正在用Groovy 1.7创建一个XML文档,并且一切正常,除了不应该进行转义的部分除外。

我是这样开始的:

            triadDoc = new XmlSlurper().parse(xmlTriadMessageDocumentPath)
            writer = new StringWriter()
            xmlBuilder = new StreamingMarkupBuilder()
            writer = xmlBuilder.bind {mkp.yield triadDoc}


效果很好。然后,我将这样添加到文档中:

            triadDoc.TriadPayload.Payload[0] = "<![CDATA[" + xmlBuilder.bind {mkp.yieldUnescaped dto.getCcdDoc()} + "]]>"


这不符合我的期望-我最终得到了:

            & lt;![CDATA[& lt;ClinicalDocument& gt;... (added extra blank to the escape sequences)


谁能告诉我我在做什么错?我在互联网上寻找线索。谢谢!!

最佳答案

您需要将整个CDATA块传递给yieldUnescaped

 mkp.yieldUnescaped( "<![CDATA[.....

08-05 09:44