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编码格式。
阅读(2495) | 评论(0) | 转发(0) |