xml关于cdata的问题
<?xmlversion="1.0"encoding="ISO-8859-1"?><emails><email><from>nowhere@notadomain.tld<...
<?xml version="1.0" encoding="ISO-8859-1" ?>
<emails>
<email>
<from>nowhere@notadomain.tld</from>
<to>unknown@unknown.tld</to>
<subject>there is no subject</subject>
<body><![CDATA[is it a body? oh ya, with some texts
& symbols]]></body>
</email>
</emails>
问题:
<![CDATA[is it a body? oh ya, with some texts
& symbols]]>, 表示什么意思? 展开
<emails>
<email>
<from>nowhere@notadomain.tld</from>
<to>unknown@unknown.tld</to>
<subject>there is no subject</subject>
<body><![CDATA[is it a body? oh ya, with some texts
& symbols]]></body>
</email>
</emails>
问题:
<![CDATA[is it a body? oh ya, with some texts
& symbols]]>, 表示什么意思? 展开
1个回答
展开全部
简单的说,因为元素内容有在XML中不合法的字符(这里是&),不能直接写,要么就将其转义(&要写成& amp ; ),要么就用CDATA段将其包含在内,这样就合法了。
你可以试着将<![CDATA[和]]>去掉,则xml文件将会出错。
CDATA定义如下:
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
你可以试着将<![CDATA[和]]>去掉,则xml文件将会出错。
CDATA定义如下:
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |