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

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

一、XML文件解析方式的特点

1、DOM解析XML文档的特点

基于DOM的解析器的核心是在内存中建立和XML文档相对应的树状结构。XML文件的标记、标记中的文本数据和实体等都是内存中的树状结构的某个节点相对应。

优点:可以方便地操作内存中的树状节点

缺点:如果XML文件较大,或者只需要解析XML文档的一部分数据,就会占用大量的内存空间

2、SAX解析XML文档的特点

SAX解析的核心是事件处理机制,SAX采用事件机制的方式来解析XML文档。使用SAX解析器对XML文档进行解析时,SAX解析器根本不创建任何对象,只是在遇到XML文档的各种标签如文档开始、元素开始、文本、元素结束时触发对应的事件,并将XML元素的内容封装成事件传出去。而程序员则负责提供事件监听器来监听这些事件,从而触发相应的事件处理方法,并通过这些事件处理方法实现对XML文档的访问。

优点:具有占用内存少,效率高等特点。

缺点:不便于随机访问任意节点。

3、流方式解析XML文档的特点

QXmlStreamReader使用了递增式的解析器,适合于在整个XML文档中查找给定的标签、读入无法放入内存的大文件以及处理XML的自定义数据。

优点:快速、方便,分块读取XML文件,可读取大文件

缺点:递增式解析器,只能顺序遍历XML文件的元素,不能随机访问

QXmlStreamWriter类提供了简单流接口的XML写入器,写入XML文档只需要调用相应的记号写入函数来写入相关数据。

优点:快速、方便

缺点:只能按顺序写入元素,不能删除、修改

推荐阅读