1

我真的被困在这里了。我正在使用 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)

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

4

2 回答 2

2

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

 mkp.yieldUnescaped( "<![CDATA[.....
于 2010-06-04T23:28:13.603 回答
0

注意:文档中的 CDATA 部分被解析器忽略。

也许这就是导致这件事跳过的原因。

这四个字符需要放在一起才能获得“<”和“>”值。

<![CDATA[<临床文档>...

于 2010-06-04T15:31:41.147 回答