为了账号安全,请及时绑定邮箱和手机立即绑定

<![CDATA[]>在XML中意味着什么?

<![CDATA[]>在XML中意味着什么?

繁花不似锦 2019-06-03 16:58:58
<![CDATA[]>在XML中意味着什么?我经常觉得这很奇怪CDATA标记入XML档案:<![CDATA[some stuff]]>我注意到CDATA标签总是出现在开头,然后跟着一些东西。但有时它被使用,有时却不是。我想是为了标记some stuff是在之后插入的“数据”。但是什么样的数据是some stuff?我用XML标记写的东西难道不是某种数据吗?
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

CDATA代表字符数据这意味着这些字符串之间的数据包括被解释为XML标记,但不应该解释为XML标记。

CDATA与评论之间的主要区别是:

这意味着从一个格式良好的文档中获得这三个XML片段:

<!ENTITY MyParamEntity "Has been expanded">

<!--
Within this comment I can use ]]>
and other reserved characters like <
&, ', and ", but %MyParamEntity; will not be expanded
(if I retrieve the text of this node it will contain
%MyParamEntity; and not "Has been expanded")
and I can't place two dashes next to each other.
-->

<![CDATA[
Within this Character Data block I can
use double dashes as much as I want (along with <, &, ', and ")
*and* %MyParamEntity; will be expanded to the text
"Has been expanded" ... however, I can't use
the CEND sequence. If I need to use CEND I must escape one of the
brackets or the greater-than sign using concatenated CDATA sections.
]]>

<description>An example of escaped CENDs</description><!-- This text contains a CEND ]]> --><!-- In this first case we put the ]] at the end 
of the first CDATA block
     and the > in the second CDATA block --><data><![CDATA[This text contains a CEND ]]]]><![CDATA[>]]></data><!-- In this second case we
      put a ] at the end of the first CDATA block
     and the ]> in the second CDATA block --><alternative><![CDATA[This text contains a CEND ]]]><![CDATA[]>]]></alternative>


查看完整回答
反对 回复 2019-06-03
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

一个很大的用例:您的XML包含一个程序,作为数据(例如,Java的网页教程)。在这种情况下,您的数据包含大量字符,其中包括‘&’和‘<’,但是这些字符不应该是XML。

比较:

<example-code>while (x &lt; len &amp;&amp; !done) {
    print( &quot;Still working, &apos;zzz&apos;.&quot; );
    ++x;
    }</example-code>

带着

<example-code><![CDATA[
while (x < len && !done) {
    print( "Still working, 'zzzz'." );
    ++x;
    }
]]></example-code>

特别是如果您正在从文件中复制/粘贴这段代码(或者将其包括在预处理器中),那么在XML文件中只包含您想要的字符是很好的,w/o将它们与XML标记/属性混为一谈。正如@paary所提到的,其他常见用途包括嵌入包含符号的URL时。最后,即使数据只包含几个特殊字符,但数据很长(比如说,一章的文本),在编辑XML文件时不必对这几个实体进行编码也很好。

(我怀疑所有与评论的比较都有点误导/毫无帮助。)


查看完整回答
反对 回复 2019-06-03
  • 3 回答
  • 0 关注
  • 3144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信