XML在Qt中的使用

本文介绍了XML的基本概念,包括XML的结构和解析器。重点讲述了Qt框架下处理XML的三种方法:QXmlStreamReader的一次解析,DOM方式通过QDomDocument构建树结构,以及SAX的事件驱动解析。同时,还提到了Qt生成XML的QXmlStreamWriter和手工生成的方式。
摘要由CSDN通过智能技术生成

1 XML简介

XML是ExtensibleMarkup Language的缩写,即可扩展标记语言。它是一种用来创建的标记的标记语言。使用XML标记语言可以做到数据或数据结构在任何编程语言环境下的共享。XML中有格式正规的XML和有效的XML。
XML文档的元素一般是由标记头、标记末和标记间的字符串数据构成。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。一般格式:<quote> Aquotion</quote>。元素中可以插入属性,但是属性值一定要用双引号。
XML解析器是读取XML文档并提供对文档内容的访问的软件模块。

DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构。

      Schema作用是定义一份XML文档的合法组件群,就像文档类型定义(外语缩写:DTD)的作用一样

      若是不了解XML,可以先学习一下XML


2 Qt 读取 XML 文档的方法
A QXmlStreamReader:一种快速的基于流的方式访问良格式 XML 文档,特别适合于实现一次解析器(所谓“一次解析器”,可以理解成我们只需读取文档一次,然后像一个遍历器从头到尾一次性处理 XML 文档,期间不会有反复的情况,也就是不会读完第一个标签,然后读第二个,读完第二个又返回去读第一个,这是不允许的);这种方法是通过调用readNext()函数实现的,可以读取下一个记号,然后返回一个记号类型。
B DOM(Document Object Model):将整个 XML 文档读入内存,构建成一个树结构,允许程序在树结构上向前向后移动导航,这是与另外两种方式最大的区别,也就是允许实现多次解析器(对应于前面所说的一次解析器)。DOM 方式带来的问题是需要一次性将整个 XML 文档读入内存,因此会占用很大内存;
C SAX(Simple API for XML):提供大量虚函数,以事件的形式处理 XML 文档。应用程序必须提供处理器(回调函数) 来从解析器获得所谓XML事件。


3 Qt生成 XML 文档方法
A QXmlStreamWriter与QXmlStreamReader相对应。XML流的方法
B DOM 方式,首先在内存中生成 DOM 树,然后将 DOM 树写入文件。
C 纯手工生成 XML 文档。

Qt中DOM的使用

//xml中的XML说明对应QDomProcessingInstruction
 
//xml中的元素对应QDomElement类
 
//xml中的属性对应QDomArr类
 
//xml中的文本内容对应QDomText类
 
//Qt中,所有的Dom节点,比如说明,元素,属性和文本等,都使用QDomNode来表示
 
//文档本身用 QDomDocument 类表示
 
//访问XML文件
    // 新建QDomDocument类对象,它代表一个XML文档
    QDomDocument doc;

    // 定义一个文件对象
    QFile file("../myDOM1/my.xml");
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值