java - 我们可以将 CDATA 嵌入到 xml 中的名称值对的纯字符串中吗?

标签 java json xml cdata

我需要从具有 CDATA 的名称值对的配置 xml 中读取 Json。

我的 xml 结构如下所示

<cfgsection name="test" value="<![CDATA[{Json data goes here}]]>"/>

我想知道 CDATA 是否可以位于平面字符串 [""] 内,因为文档表明它应该位于节点/元素内?

有人能解释一下吗?

最佳答案

CDATA 只能作为元素内容的一部分出现,而不能作为属性值的一部分出现。 (如果您学习正确的术语,就更容易提出问题并理解答案......)

这意味着你可以写

<prop name="test"><![CDATA[{Some Json}]]></prop>

但是你不能写

<prop name="test" value="<![CDATA[{Some Json}]]>"/>

CDATA当然只是转义特殊字符的设备,还有其他方法可以转义属性中的特殊字符。事实上,如果您在属性周围使用单引号

<prop name="test" value='{"key":value, "data":[1,2,3]}'/>

那么你通常根本不需要任何转义,除非你的 JSON 数据恰好包含带有 "'" 的字符串。或"<"在它们中——在这种情况下,它们可以写成 XML 字符引用。

关于java - 我们可以将 CDATA 嵌入到 xml 中的名称值对的纯字符串中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60710425/

相关文章:

java - 在android中使用 View 切换器创建编辑模式类

java - 如何让try-finally中的finally等待线程完成?

c# - 解析 JSON 响应的最简单方法

javascript - 使用 XSL 和 JS 读取多行 XML 值

Java泛型类型变量作为数组类型

Java:如何通过鼠标单击中断程序执行中途

javascript - 如何在 D3.js 强制布局中链接来自 json 数据的额外属性?

json - 在 JSON 中格式化货币值的标准是什么?

java - 如何向 Web 服务发送 XML 请求

java - 使用 Spring Boot 从 REST post 请求读取 XML