Learning Qt 5! (16):处理XML和JSON

学习之前,先梳理一下HTML、XML和JSON:
HTML、XML和JSON学习汇总
10分钟掌握XML、JSON及其解析
【xml】—html 与 xml 的区别与联系
【html】——初识网页的背后

开始学习。
Qt 学习之路 2(59):使用流处理 XML
Qt 学习之路 2(60):使用 DOM 处理 XML
Qt 学习之路 2(61):使用 SAX 处理 XML(这个方法要被淘汰了暂时跳过)
Qt 学习之路 2(62):保存 XML
JSON读写的两篇暂时跳过,需要时再去学习QJson库或者Qt5 中QJsonxxx类的用法。
Qt 学习之路 2(63):使用 QJson 处理 JSON
Qt 学习之路 2(64):使用 QJsonDocument 处理 JSON

Qt 提供了三种读取 XML 文档的方法:

1.QXmlStreamReader:一种快速的基于流的方式访问良格式 XML 文档,特别适合于实现一次解析器(所谓“一次解析器”,可以理解成我们只需读取文档一次,然后像一个遍历器从头到尾一次性处理 XML 文档,期间不会有反复的情况,也就是不会读完第一个标签,然后读第二个,读完第二个又返回去读第一个,这是不允许的);
2.DOM(Document Object Model):将整个 XML 文档读入内存,构建成一个树结构,允许程序在树结构上向前向后移动导航,这是与另外两种方式最大的区别,也就是允许实现多次解析器(对应于前面所说的一次解析器)。DOM 方式带来的问题是需要一次性将整个 XML 文档读入内存,因此会占用很大内存;
3.SAX(Simple API for XML):这种解析办法主要是由于历史原因提出的,为了解决 DOM 的内存占用(在现代计算机上,这个一般已经不是问题了)。

Qt中生成XML同样有三种方式:

1.QXmlStreamWriter,与QXmlStreamReader相对应;
2.DOM 方式,首先在内存中生成 DOM 树,然后将 DOM 树写入文件。不过,除非我们程序的数据结构中本来就维护着一个 DOM 树,否则,临时生成树再写入肯定比较麻烦;
3.纯手工生成 XML 文档,显然,这是最复杂的一种方式。

在 Qt4 中,这三种方式都位于 QtXml 模块中。Qt5 则将QXmlStreamReader/QXmlStreamWriter移动到 QtCore 中,QtXml 则标记为“不再维护”,这已经充分表明了 Qt 的官方意向,看来QXmlStreamReader/QXmlStreamWriter是未来的方向了。

猜你喜欢

转载自blog.csdn.net/u013213111/article/details/86307108