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 SAXSAX是事实上的读取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 DOMDOM是由W3C制订的解析XML的标准API,Qt提供了一个non-validating类型的DOM level 2级别的实现,可用于XML文档的读写以及其他操作。DOM在内存中将XML文件表示为树的形式。QDomDocument::setContent(),设定要读取的XML文档。15.3 Writing XMLQt中存在两种生成XML文档的方法1). 构建一个DOM tree,并对其调用save()2). 手动输出XML格式两种方式之间的选择独立于读取XML文档时选择SAX或是DOM默认情况下,QDomDocument::save()生成文档时采用UTF-8编码格式。