XML CDATA的作用

操作XML文件时,如果允许用户输入内容,例如∶"< "、">"、"/"、""等,当生成XML时,会破坏了XML结构,使数据中断。

这就要用XML CDATA

在XML文档中的所有文本都会被解析器解析。

只有在CDATA部件之内的文本会被解析器忽略。

--------------------------------------------------------------------------------

解析数据
XML 解析器通常情况下会处理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>

下面是五个在XML文档中预定义好的实体:

< < 小于号 
> > 大于号 
& & 和 
&apos; ‘ 单引号 
" " 双引号

实体必须以符号"&"开头,以符号";"结尾。 
注意: 只有"< " 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。

--------------------------------------------------------------------------------

CDATA部件
在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部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"< ![CDATA[" ,将很有可能出错哦。

同样要注意在字符串"]]>"之间没有空格或者换行符

转载来源:https://www.cnblogs.com/chenqingwei/archive/2010/04/21/1717237.html

时间: 2024-10-07 19:37:21

XML CDATA的作用的相关文章

XML文件中CDATA的作用

操作XML文件时,如果允许用户输入内容,例如∶"< ".">"."/".""等,当生成XML时,会破坏了XML结构,使数据中断. 在XML文档中的所有文本都会被解析器解析,这就要用XML CDATA,只有在CDATA部件之内的文本会被解析器忽略. 1.解析文本XML 解析器通常情况下会处理XML文档中的所有文本. 当XML元素被解析的时候,XML元素内部的文本也会被解析:<message>This te

XML CDATA

---------  XML CDATA   -------- 在标记CDATA下,所有的标记.实体引用都被忽略 ,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下: <![CDATA[文本内容]]> CDATA的文本内容中不能出现字符串"]]>",另外,CDATA不能嵌套. 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data) <script> <![CDATA[ fu

tomcat下的4个xml配置文件的作用

转自:http://blog.csdn.net/wjrong_1/article/details/20299439 context.xml文件的作用: Context.xml是Tomcat公用的环境配置.tomcat服务器会定时去扫描这个文件.一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器.context.xml的三个作用范围:1. tomcat server级别:在/conf/context.xml里配置2. Host级别:在/conf/Catalina/${

XML CDATA是什么?

XML CDATA是什么? 投稿:mdxy-dxy 字体:[增加 减小] 类型:转载 这篇文章主要为大家介绍下XML CDATA是什么,学习xml的朋友可以参考下 All text in an XML document will be parsed by the parser.XML文档中的所有文本都会被解析器解析. Only text inside a CDATA section will be ignored by the parser.只有CDATA部分的文本会被解析器忽略 Parsed

雷林鹏分享: XML CDATA

XML CDATA XML 文档中的所有文本均会被解析器解析. 只有 CDATA 区段中的文本会被解析器忽略. PCDATA - 被解析的字符数据 XML 解析器通常会解析 XML 文档中所有的文本. 当某个 XML 元素被解析时,其标签之间的文本也会被解析: This text is also parsed 解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个实例中,其中的 元素包含着另外的两个元素(first 和 last): BillGates 而解析器会把它分解为像这样的子元素

web.xml文件的作用

每个javaEE工程中都有web.xml文件,那么它的作用是什么呢?它是每个web.xml工程都必须的吗? 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来初始化配置信息:比如Welcome页面.servlet.servlet-mapping.filter.listener.启动加载级别等. 当你的web工程没用到这些时,你可以不用web.xml文件来配置你的Application. 每个xml文件都有定义它书写规则的Sche

&lt;![CDATA[ ]]&gt; 的作用

在xml文件中 一些特殊字符需要去除其本意,就要用到 <![CDATA[    ]]>,,比如 ibitis的sqlmap.xml 中  要比较大小不能直接用 < 或者 > ,应该 <![CDATA[ < ]]> 这样子

web.xml文件的作用及基本配置

Java的web工程中的web.xml文件有什么作用呢?它是每个web工程都必须的吗? 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. 那什么时候需要,什么时候可以不需要呢? 要想回答上面的问题,得先了解web.xml文件是用来干什么的.web.xml文件是用来配置:欢迎页.servlet.filter等的.当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程. 那么web.xml能做的所有事情都有那些? 其实,web.

mybatis 的 &lt;![CDATA[ ]]&gt; 标签作用

有个细节一直没有注意到,今天mark一下: mybatis进行时间比较的时候我们会这么写,一直都是在复制粘贴所以没有注意,一个标签<![CDATA[ ]]> 今天在做另外一个有时间比较sql的时候,xml一直报如下错: The content of elements must consist of well-formed character data or markup 检查没有xml标签问题,后来才注意到原来是没加<![CDATA[ ]]>标签导致: 因为这个是xml格式的,所以