Qt中的QtXml模块

来源:互联网 发布:淘宝怎么可以买到rush 编辑:程序博客网 时间:2024/06/06 00:50

Qt中的QtXml模块提供了两组不同的API用于读取XML文档

SAX(Simple API for XML):通过virtual function直接向应用程序报告"parsing event“。
DOM(Document Object Model):将XML文档转换为树型结构。

SAX接近底层,速度更快;DOM更便于使用。

15.1    Readin XML with SAX

SAX是事实上的读取XML文档的标准API,Qt中的SAX类仿照了Java中的SAX2的实现。

Qt提供了一个SAX-based的non-validateing类型的XML解析器QXmlSimpleReader。解析器在读取文档时,会调用其注册的handler class中的virtual function。

Qt为QXmlSimpleReader提供了若干handler class,对于大多数应用,只需要使用QXmlContentHandlerr和QXmlErrorHandler。

Qt提供了一个对程序员很方便的QXmlDefaultHandler,它对所有的handler class都进行了派生,并对所有virtual function提供了简单的实现。

要使用QtXml库,需要在.pro文件中加入下面一行: "QT   +=xml"

15.2    Reading XML with DOM

DOM是由W3C制订的解析XML的标准API,Qt提供了一个non-validating类型的DOM level 2级别的实现,可用于XML文档的读写以及其他操作。

DOM在内存中将XML文件表示为树的形式。

QDomDocument::setContent(),设定要读取的XML文档。


15.3    Writing XML

Qt中存在两种生成XML文档的方法

1).    构建一个DOM tree,并对其调用save()
2).    手动输出XML格式

两种方式之间的选择独立于读取XML文档时选择SAX或是DOM

默认情况下,QDomDocument::save()生成文档时采用UTF-8编码格式。

原创粉丝点击