xml - 使用 groovy MarkupBuilder 在 XML 中生成 CDATA
问题描述
我希望能够使用 Groovy 在我的 XML 中生成 CDATA 部分。我已经使用 MarkupBuilder 的 mkp 来做到这一点,但它不起作用。我正在遍历产品,然后生成以下代码段作为 XML 的一部分。我得到以下内容:它在产品代码旁边而不是在描述中打印未转义的文本,该描述留空。
<product>
<name>banana</name>
<code>10002</code><name>ICON_1</name><!CDATA[This product is on
sale]]]>
<description/>
</product>
这是用于生成数据的部分。
product{
name (product.name)
code (product.code)
description mkp.yieldUnescaped("<!CDATA[${product.description}]]>")
}
这就是我要打印的内容:
<product>
<name>banana</name>
<code>10002</code>
<description><![CDATA[This product is on sale]]></description>
</product>
解决方案
你只需要在你的部分周围使用一些花括号CDATA
来给构建者一个放置它的提示:
def out = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(out)
xml.product {
name ('banana')
code ('10002')
description { mkp.yieldUnescaped("<![CDATA[Example of text in a CDATA block]]>") }
}
System.out.println out.toString()
这会产生:
<product>
<name>banana</name>
<code>10002</code>
<description><![CDATA[Example of text in a CDATA block]]></description>
</product>
推荐阅读
- image - 使用 mupdf 裁剪图像格式 pdf
- python - 将文件拆分为列表后删除空格
- angular - @viewChild 不触发模态弹出并抛出错误 triggerModal 不是一个函数 - Angular
- javascript - 如何从 Promise 函数返回值
- android - 如何使 Fragment + Firebase firestore 工作而不泄漏资源(在 Android 中)?
- mysql - XAMPP-MYSQL 意外关闭
- machine-learning - Flink 中序列化复杂模型的最佳实践
- here-api - Transit API 如何获取特定路线服务的所有站点?
- python - 如何在python中迭代给定一天的几个小时?
- html - 如何在 CSS 中使用边框制作管道