我们可以将 CDATA 嵌入到 xml 中名称值对的纯字符串中吗?
Can we embed CDATA inside the plain string of name value pair in an xml?
我需要从配置 xml 中读取 Json 以及具有 CDATA 的名称值对。
我的 xml 结构如下所示
<cfgsection name="test" value="<![CDATA[{Json data goes here}]]>"/>
我想知道 CDATA 是否可以在平面字符串 [""] 内,因为文档表明它应该在 node/element 内?
任何人都可以阐明这一点吗?
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 个字符引用。
我需要从配置 xml 中读取 Json 以及具有 CDATA 的名称值对。
我的 xml 结构如下所示
<cfgsection name="test" value="<![CDATA[{Json data goes here}]]>"/>
我想知道 CDATA 是否可以在平面字符串 [""] 内,因为文档表明它应该在 node/element 内?
任何人都可以阐明这一点吗?
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 个字符引用。