一. XML 解析
目前比较常用的 XML 解析, 有两种方式 DOM 和 SAX , 以及基于SAX原理实现的方式 。
DOM 把 XML 文档作为树结构来查看, 能够通过DOM树来访问所有元素以及修改或删除它们。
SAX 是基于事件的解析, 解析器读取到相应数据节点, 产生相应的事件, 由应用程序实现相应的事件
处理逻辑。
二. DOM 与 SAX 比较
DOM 解析XML文档时, 需要读取整个 XML 文档, 当XML文档特别大的时候, 读取会很慢。
SAX 解析XML文档时,是逐行扫描, 边扫描可以边解析,不必等到整个文档读取完后再操作 。
三. Qt 自身提供的类
Qt 本身提供了 DOM 和 SAX 方式读取XML,下面仅以 QXmlStreamReader 和 QXmlStreamWriter 来说明, 因这两个类解析XML比较快。
QXmlStreamReader 类, 提供一些简单 API ,用于读取XML , 与 SAX 类似, 主要不同点是: SAX 必须指定回调函数接收当前被处理节点事件;而使用 QXmlStreamReader 时, 由应用程序自身驱动循环并且拉取节点。
QXmlStreamWriter 类,提供一些简单API, 用于写入XML。
四. 如何使用
QXmlStreamReader 按照如下步骤调用: