QT开发(四十一)——XML文件解析基础-阿里云开发者社区

开发者社区> dasein58> 正文

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

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

  一、XML文档简介

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

  
  

  

  
  shiming

  

  

  
  yafei

  

  

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

  二、XML文件结构

  1、XML文件头

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

  XML声明如下:

  
  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处理器解释,直接显示在浏览器中,使用方法如下:

  
  7、处理指令

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

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

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

  四、QtXml模块简介

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

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

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

  C、基于流的方法,分别使用QXmlStreamReader和QXmlStreamWriter进行读取和写入。

  使用XML模块,在文件中添加QT +=xml,并加如相应的头文件#include 或者#include 。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP操作XML文件学习笔记
原文:PHP操作XML文件学习笔记   XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据。   对于XML的操作包括遍历,生成,修改,删除等其他类似的操作。PHP对于XML的操作方式很多,这次学习的是通过DOMDocument进行操作,其他的操作方法可以参考   http://www.oschina.net/code/snippet_110138_4727   1.对XML文件的遍历     通过DOMDocument对于XML文件的操作的方法:首先要实例化一个DOMDocument类的对象,然后引入要操作的XML文件。
812 0
boost之program_options库,解析命令行参数、读取配置文件
一、命令行解析 tprogram_options解析命令行参数示例代码:   [cpp] view plaincopy   #include    using namespace std;      #include    namespace po = boos...
1179 0
OAF_文件系列5_实现OAF解析XML文件javax.xml.parsers(案例)
20150729 Created By BaoXinjian 一、摘要 通过javax.xml.parsers.DocumentBuilder解析从系统系统导入的XML文件 此过程需要用到一些包方法 1.
820 0
Maven项目中无法找到 xml文件或 properties文件等配置文件的解决方法
在初次使用 Maven 项目的时候总是会遇到一些比较奇异的问题 就比如说总是会报错:项目里的 **.xml 或 **.properties 配置文件无法找到 这时你去项目中的 classes 生成文件(target 或 out)中找,确实这些配置文件没有被编译 这是因为 ...
1413 0
7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
 数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDefault.xml.所有的key皆为char *型,value类型为bool intfloat double std::string. 读操作
1249 0
Qt-QML-C++交互实现文件IO系统-后继-读取XML文件和创建XML文件
在前面两篇中,大致完成了一个文件IO的读和写操作。前面两篇文章链接
14 0
Android官方开发文档Training系列课程中文版:网络操作之XML解析
原文地址:http://android.xsoftlab.net/training/basics/network-ops/xml.html 扩展标记语言(XML)是一系列有序编码的文档。
554 0
有限状态机解析配置文件
有限状态机是文本处理的利器,关于有限状态机的理论比较复杂,但在实际文本处理应用中, 只需要对有限状态机的模型有所了解,搞清楚状态转移关系即可快速的写出程序。   如对网络配置文件进行解析(与/etc/sysconfig/network-scripts/ifcfg-eth0文件...
662 0
+关注
741
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载