Qt中的QtXml模块

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编码格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值