xml - CDATA 存在的原因是什么?

标签 xml xslt cdata

我经常看到人们在这里问与 XML/XSLT 相关的问题,这些问题的根源在于无法理解 CDATA 的工作原理(例如 this one)。

我想知道 - 为什么它首先存在?并不是说 XML 离不开它,您可以放入 CDATA 部分的所有内容都可以表示为“ native ”(XML 转义)。

我很欣赏 CDATA 可能会使生成的文档变小一些,但让我们面对现实吧——XML 无论如何都是冗长的。例如,通过压缩可以更轻松地实现小型 XML 文档。

对我来说,CDATA 打破了标记和数据的清晰分离,因为您可以拥有肉眼看起来像标记的数据,我发现这是一件坏事。 (这甚至可能是鼓励人们不充分地将字符串处理或正则表达式应用于 XML 的原因之一。)

那么:有什么好的理由使用 CDATA?

最佳答案

CDATA sections 只是为了人类作者的方便,而不是为了程序。它们的唯一用途是让人类能够轻松地包括例如。 XHTML 页面中的 SVG 示例代码无需仔细替换每个 <&lt;等等。

这对我来说是预期用途。不要使生成的文档变小几个字节,因为您可以使用 <而不是 &lt; .

同样从上面获取示例(xhtml 中的 SVG 代码),它使我可以轻松检查 XHTML 文件的源代码,只需复制粘贴 SVG 代码,而无需再次反向替换 &lt;< .

关于xml - CDATA 存在的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1714209/

相关文章:

c++ - XML 节点模板——我应该使用 XSLT 吗?

WSO2 ESB - 使用有效负载标签内的 XML 数据调用 Web 服务

java - xmlSignature java 中的 XSLT 转换?

xslt - 要比较XSLT中的两个元素(字符串类型)?

java - 在 XmlObject 中添加数据

xml - 使用 XMLStarlet 替换 XML 值内的子字符串

xml - 在 OpenAPI 中,如何定义具有属性和内容的 XML 元素?

java - 如何在Android Studio中安装JDOM

xml - 是否可以将根元素限制为从指定父类型派生的类型?

javascript - openui5/sapui5 : Change parts of a page controlled by router