必威体育Betway必威体育官网
当前位置:首页 > IT技术

XML 中的 ﹤![CDATA[ ]]>

时间:2019-08-15 22:44:36来源:IT技术作者:seo实验室小编阅读:58次「手机版」
 

cdata

 本文主要介绍xml中CDATA作用。

  为了解决属性值中使用XML中的特殊字符,xml使用类似的转义字符去描述。

字符

转移字符

<

>

&

&

'

'

"

"

CDATA段

  在某些情况下,我们在xml中要使用大量XML敏感的字符,而我们又不希望逐一的对其进行转移。这时候使用CDATA段是最理想的。

  1)语法格式:< ! [ CDATA [忽略检查的文本]]>

2)在CDATA中将文本的内容写入,那么这段文本内容会被忽略检查,无论里面是否包含XML敏感内容,全部被当作普通的文本去看待。例如:

<content>

   <![ CDATA [

       <script language="javascript">

           function sayhello(){    alert("hello!");        }

       </script>

   ] ] >  

</content>

CDATA的定义:

CDATA DTD的属性类型,全名character data,指不由xml解析器进行解析的文本数据。在标记的CDATA下,所有的标记、实体引用(特殊字符)都会被忽略,而被当作字符数据来看待。

CDATA的形式:

CDATA的形式如下: <![CDATA[文本内容]]> CDATA的文本内容中不能出现字符串“]]>”,也不能嵌套。 CDATA区域是由“<![CDATA["为开始标记,以“]]>”为结束标记,注意CDATA为大写。

DTD实例:

指定类型为CDATA以后就可以在XML中被用于实例,例如下面payment 元素的type属性被指定为CDATA类型后在XML中就可以赋于”check”的字符数据。

<!ATTLIST payment type CDATA "check">

1

XML 实例:

在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。例如:

<name><first>Bill</first><last>Gates</last></name>

1

而解析器会把它分解为像这样的子元素:

<name>

<first>Bill</first>

<last>Gates</last>

</name>

1

2

3

4

转义字符:

非法的xml字符必须被替换为实体引用(entity reference)。如果在XML文档中使用类似”< ” 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该象下面那样书写代码:

<message>if salary < 1000 then</message>

1

为了避免出现这种情况,必须将字符”< ” 转换成实体,象下面这样:

<message>if salary < 1000 then</message>

1

在 XML 中有 5 个预定义的实体引用:

&lt;     <    小于号

&gt;     >    大于号

&amp;   &    与(和)号

&apos;  '     单引号

&quot;  "     双引号

1

2

3

4

5

注释:严格地讲,在 XML 中仅有字符 “<”和”&” 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。

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

CDATA

CDATA 全名:character data。所有 XML 文档中的文本均会被解析器解析,除了 CDATA 区段(CDATA section)中的文本会被解析器忽略。

CDATA的形式如下: <![CDATA[文本内容]]> 。

CDATA的文本内容中不能出现字符串“]]>”。另外,CDATA不能嵌套。

XML 实例: 在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。 CDATA区域是由“<![CDATA["为开始标记,以“]]>”为结束标记,注意CDATA为大写。

QDom 解析 xml 中的CDATA

例如 解析下面的 Data 节点中的 CDATA,并将图片数据加载内存中:

<Data>

 <![CDATA[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]]>

</Data> 

QDomText text  = elem.firstChild().toText();

QByteArray data = text.data().toUtf8();

data = QByteArray::frombase64(data);

if(!data.isempty()){

    QPixmap pix;

    pix.loadFromData(data);

    image->setBitmap(pix);

}

或者

QSring data= elem.firstChild().nodeValue();

QByteArray bitData = data.toUtf8();

bitData = QByteArray::fromBase64(bitData);

pix.loadFromData(bitData);

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

转自:https://blog.csdn.net/qq_33266987/article/details/54288051 

https://blog.csdn.net/lmb55/article/details/52761273 

https://blog.csdn.net/psp0001060/article/details/50582031 

相关阅读

Java解析XML文件

1.DOM方式解析XMLDom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,ja

Maven中settings.xml的配置项说明

一.Maven的setting配置文件 和 在Eclipse中对Maven的正确配置。 1.Maven的配置文件(Maven的安装目录/conf/settings.xml ) 和 Maven

Web.xml中Context-param的作用

1.启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和<context-param></c

xml字符串格式化

说明 1、调用方法 : new XMLFormat(xml).format();2、该类不引用其他第三方jar包.3、支持对缩写< />进行格式化。本文参考博文:ht

web.xml中context-param的配置作用

一、定义<context-param>  <param-name>参数名</param-name>  <param-value>参数值</param-value>  </context-param>作用:

分享到:

栏目导航

推荐阅读

热门阅读