XML中[CDATA[%s]]的作用是什么
"<xml>
<ToUserName>< ![CDATA[%s]] ></ToUserName> <CreateTime> %s </CreateTime> </xml>"; 以上语句中 (1)[CDATA[%s]]中%s的作用是什么? (2)<CreateTime>%s</CreateTime>中%s的作用是什么? 1、指示其内包含的内容是文本,相当于是PDATA 操作XML文件时,如果允许用户输入内容,例如∶"< "、">"、"/"、""等,当生成XML时,会破坏了XML结构,使数据中断。 这就要用XML CDATA。在XML文档中的所有文本都会被解析器解析。只有在CDATA部件之内的文本会被解析器忽略。
2、xml根本没有定义%s干什么使用。是自己定义的,应该自己来进行解释。 一般xml模版文件里%s是用来替换的就是会用实际的值去替换掉这个标签,相当于是CDATA -----------------------------------xml的相关用法--------------------------------------------- PCDATA 想被xml解析的文本数据 当XML元素被解析的时候,XML元素内部的文本也会被解析:
<message>This text is also parsed</message> XML解析器这样做的原因是XML元素内部可能还包含了别的元素,象下面的例子,name元素内部包含了first和last两个元素:
<name><first>Bill</first><last>Gates</last></name> 解析器会认为上面的代码是这样的:
<name> <first>Bill</first> <last>Gates</last> </name> -------------------------------------------------------------------------------- xml中的转义字符 如果在XML文档中使用类似"< " 的字符,那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该象下面那样书写代码: < message>if salary < 1000 then< /message> 为了避免出现这种情况,必须将字符"< " 转换成实体,象下面这样: < message>if salary <1000 then< /message> 实体必须以符号"&"开头,以符号";"结尾。
CDATA不想被xml解析器解析的文本数据 在 XML 元素中,”<” 和 “&” 是非法的。 “<” 会产生错误,因为解析器会把该字符解释为新元素的开始。 “&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始。 某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA。 CDATA 部分中的所有内容都会被解析器忽略。 一个 CDATA 部件以"< ![CDATA[" 标记开始,以"]]>"标记结束:
<script> <![CDATA[ function matchwo(a,b){ if (a < b && a < 0) then { return 1; }else{ return 0; } } ]]> </script>
在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。 CDATA 部分不能包含字符串 “]]>”。也不允许嵌套的 CDATA 部分。 标记 CDATA 部分结尾的 “]]>” 不能包含空格或折行。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |