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

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

一、XML文档简介

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

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

<library>

<book id="01">

<title>Qt</title>

<author>shiming</author>

</book>

<book id="02">

<title>Linux</title>

<author>yafei</author>

</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文档必须有且只有一个根元素。元素的名称是区分大小写的,元素还可以嵌套,比如这里的library、book、title和author等都是元素。元素可以包含属性,用来描述元素的相关信息,属性名和属性值在元素的起始标签中给出,格式为<元素名 属性名=“属性值”>,如<book id=“01”>,属性值必须在单引号或者双引号中。在元素中可以包含子元素,也可以只包含文本内容,比如这里的<title>Qt</title>中的Qt就是文本内容。

二、XML文件结构

1、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。

2、XML文件体

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

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

XML元素的格式如下:

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

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

三、XML基本语法

1、注释

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

2、区分大小写

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

3、标记

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

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

4、属性

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

5、实体引用

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

6、CDATA

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

<![CDATA[这里的内容可以直接显示]]>

7、处理指令

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

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

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

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

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

四、QtXml模块简介

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

A、DOM方法,可以进行读写;

B、SAX方法,可以进行读取;

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

时间: 2025-01-02 03:42:45

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

xml文件解析基础和签名

0. 前言 参考文档1:使用dom4j读取xml文件的四种方式 参考文档2:dom4j解析xml文件 参考文档3:String 和 document 的相互转换总结 参考文档4: Java SE 6中 XML 数字签名的标准 Java 接口 参考文档5:XML Security with Digital Signature in JAVA 1.xml文件的解析 1.1 基本的jdk解析xml的原始api解析 声明 1.以下代码块要放到一个类中才能运行 dom类型为:org.w3c.dom.* 解

QT开发(四十五)——XML文件解析总结

QT开发(四十五)--XML文件解析总结 一.XML文件解析方式的特点 1.DOM解析XML文档的特点 基于DOM的解析器的核心是在内存中建立和XML文档相对应的树状结构.XML文件的标记.标记中的文本数据和实体等都是内存中的树状结构的某个节点相对应. 优点:可以方便地操作内存中的树状节点 缺点:如果XML文件较大,或者只需要解析XML文档的一部分数据,就会占用大量的内存空间 2.SAX解析XML文档的特点 SAX解析的核心是事件处理机制,SAX采用事件机制的方式来解析XML文档.使用SAX解析

android基础知识13:AndroidManifest.xml文件解析

1.重要性 AndroidManifest.xml是Android应用程序中最重要的文件之一.它是Android程序的全局配置文件,是每个 android程序中必须的文件.它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件 (activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息. 因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所

java基础之概谈xml文件解析

XML已经成为一种很通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.诸多web应用框架,其可配置的编程方式,给我们的开发带来了很大程度的便捷,但细细想来,它们的应用无一不是java bean与xml之间的转换解析.本文将对xml的两种操作标准DOM和SAX,从它们各自的特点.适用范围等方面进行简单介绍. DOM (Document Object Model) :DOM标准中,采用W3C标准表示XML,有多重语言支持,因此其跨平台性很好.采用DOM规范

通过正则表达式实现简单xml文件解析

这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node对象.xml文档树上的每一个节点都是一个Node对象,对象拥有title.attribute和text三个自身变量以及一个childrenNode集合. 一.编写Node类 import java.io.Serializable; import java.util.HashMap; import j

XML文件解析之JDOM解析

1.JDOM介绍 JDOM的官方网站是http://www.jdom.org/,JDOM解析用到的jar包可以在http://www.jdom.org/dist/binary/中下载,最新的JDOM2的版本是2.0.5,JDOM1的版本是1.1.3,根据官网中的介绍可以知道.JDOM是一个在基于内存的XML模型,它用于读写创建修改XML文档.JDOM和DOM相似因为他们都提供了内存XML文档模型,但是DOM被设计用于很多种语言(C,C++,ECMSctipr,Java,JScript,Lingo

XML文件解析【安卓7】——SAX解析

XML文件解析 XML解析:XML技术是Android平台的应用基础,  Android提供了多种解析XML的方式:SAX解析.DOM解析.PULL解析 SAX解析 SAX --Simple  API  forXML  (XML简单的API) --解析速度快.占用内存少 --提供一组简单的API用于解析XML文件 --SAX在解析XML文件前,先指定一个解析事件处理器(Handler),SAX会对XML文档进行简单的顺序扫描,当扫描到[文档(Document)的开始和结束.元素(Element)

八、Android学习第七天——XML文件解析方法(转)

(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:extensible markup language 定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 解析XML的方式: SAX——Simple API for XML,既是一种接口,也是一个软件包采用的是事件驱动,也就是它解析

JAVA之XML文件解析

在Java.Android开发中,xml文件的解析很重要.本人使用过的xml文件解析的方式有两种,一种是DOM文档解析.还有一种是SAX. DOM是基于文档树结构的.SAX是基于事件驱动的.SAX则是遇到标签则触发工作的.当解析器发现元素开始.元素结束.文本.文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据.优缺点很明显:DOM对于大型文件的操作不好(因为它要先读入整个文档到内存中),SAX为了解决这样问题.不用事先调入整个文档,占用资源少:SAX解析器代码比DOM解析器代