QT开发(四十一)——XML文件解析基础

QT开发(四十一)——XML文件解析基础

1、XML文档简介

    XML(Extensible Markup Language,可扩展标记语言),是一种通用的文本格式,被普遍运用于数据交换和数据存储,而不是显示数据。XML的标签没有被预约义,用户须要在使用时自行进行定义。XML是W3C(万维网联盟)的推荐标准。相对于数据库表格的二维表示,XML使用的树形结构更能表现出数据的包含关系,做为一种文本文件格式,XML简单明了的特性使得它在信息存储和描述领域很是流行。数据库

<?xml version="1.0" encoding="UTF-8"?>浏览器

<library>ide

   <book id="01">编码

       <title>Qt</title>spa

       <author>shiming</author>code

    </book>xml

   <book id="02">开发

       <title>Linux</title>文档

       <author>yafei</author>it

   </book>

</library>

    每一个XML文档都由XML说明(或者称为XML序言)开始,它是对XML文档处理的环境和要求的说明,好比这里的<?xmlversion="1.0" encoding="UTF-8"?>,其中xml version=“1.0”,代表使用的XML版本号,这里字母是区分大小写的;encoding=“UTF-8”是使用的编码,指出文档是使用何种字符集创建的,默认值为Unicode编码。XML文档内容由多个元素组成,一个元素由起始标签<标签名>和终止标签</标签名>以及两个标签之间的内容组成,而文档中第一个元素被称为根元素,好比这里的<library></library>XML文档必须有且只有一个根元素。元素的名称是区分大小写的,元素还能够嵌套,好比这里的librarybooktitleauthor等都是元素。元素能够包含属性,用来描述元素的相关信息,属性名和属性值在元素的起始标签中给出,格式为<元素名 属性名=“属性值”>,如<book id=“01”>,属性值必须在单引号或者双引号中。在元素中能够包含子元素,也能够只包含文本内容,好比这里的<title>Qt</title>中的Qt就是文本内容。

2、XML文件结构

一、XML文件头

    XML文件头由XML声明与DTD文件类型声明组成。其中DTD文件类型声明是能够缺乏的,而XML声明是必需要有的,以使文件符合XML的标准规格。

XML声明以下:

<?xml version="1.0" encoding="gb2312"?>

XML声明必须在XML文档的第一行

“<?”表明一条指令的开始,“?>”表明一条指令的结束;

“xml”表明此文件是XML文件;

“ version="1.0" ”表明此文件用的是XML1.0标准;

“ encoding="gb2312" ” 表明此文件所用的字符集,默认值为Unicode,若是文件中要用到中文,就必须将此值设定为gb2312。

二、XML文件体

    文件体中包含的是XML文件的内容,XML元素是XML文件内容的基本单元。

    一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。

XML元素格式以下:

<标记名称 属性名1="属性值1" 属性名1="属性值1" ……>内容</标记名称>

    全部的数据内容都必须在某个标记的开始和结束标记内,而每一个标记又必须包含在另外一个标记的开始与结束标记内,造成嵌套式的分布,只有最外层的标记没必要被其余的标记所包含。最外层的是根元素(Root),又称文件(Document)元素,全部的元素都包含在根元素内。

3、XML基本语法

1、注释

    XML的注释与HTML的注释相同,以“<!--”开始,以“-->”结束。

二、区分大小写

    在HTML中是不区分大小写的,而XML区分大小写,包括标记,属性,指令等。

三、标记

    XML标记与HTML标记相同,“<”表示一个标记的开始,“>” 表示一个标记的结束。XML中只要有起始标记,就必须有结束标记,并且在使用嵌套结构时,标记之间不能交叉。

    在XML中不含任何内容的标记叫作空标记,格式为:<标记名称/>

4、属性

    XML属性的使用与HTML属性基本相同,但须要注意的是属性值要加双引号。

5、实体引用

    实体引用是指分析文档时会被字符数据取代的元素,实体引用用于XML文档中的特殊字符,不然这些字符会被解释为元素的组成部分。例如,若是要显示“<”,须要使用实体引用“<”不然会被解释为一个标记的起始。

六、CDATA

    在XML中由一个特殊的标记CDATA,在CDATA中全部文本都不会被XML处理器解释,直接显示在浏览器中,使用方法以下:

<![CDATA[这里的内容能够直接显示]]>

 

7、处理指令

    处理指令使用来给处理XML文件的应用程序提供信息的,处理指令的格式以下:

<?处理指令名称 处理指令信息?>

XML声明就是一条处理指令:

<?xml version="1.0" encoding="gb2312"?>

其中,“xml”是处理指令名称,version="1.0" encoding="gb2312"是处理指令信息。

4、QtXml模块简介

    QT中提供了QtXml模块来进行XML文档的处理QtXml模块提供三种对XML文档的解析方法:

A、DOM方法,能够进行读写;

B、SAX方法,能够进行读取;

C、基于流的方法,分别使用QXmlStreamReaderQXmlStreamWriter进行读取和写入。  
   使用XML模块,在.pro文件中添加QT += xml,并加如相应的头文件#include <QDomDocument>或者#include <QXmlStreamReader>。

相关文章
相关标签/搜索