java - mkp.yieldUnescaped 不起作用

标签 java xml groovy xmlslurper

我真的被困在这里了。我正在使用 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 block 传递给yieldUnescaped

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

关于java - mkp.yieldUnescaped 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2974423/

相关文章:

java - 我怎样才能让我的 BST add 方法在前两个子节点之后添加节点?

java - 使用Gradle添加Google Identity Toolkit时出错

java - 如何在Java中通过名称(字符串)调用方法?

java - 在 Java 中去除无效的 XML 字符

xml - 编辑配置值Powershell

javascript - 如何使用 JavaScript 迭代 XML 文件并在 HTML 网页中显示数据?

java - 如何在 Java 或 Groovy 中对时间字符串列表进行排序

java - 在 groovy 中获取毫秒数

java - 内联实例类作为枚举中的参数

java - GORM(grails)中的树结构