测试环境:
qt 4.8.6版本 vs2010 xml version=1.0
1、qt帮助手册查找qt方面处理xml的类
以下类是从qt的帮助手册中找到并进行了一些翻译,
1.1类翻译
QDomAttr:表示QDomElement的一个属性
QDomCDATASection:表示XML CDATA部分
QDomCharacterData:表示DOM中的通用字符串
QDomComment:表示XML注释
QDomDocument:表示XML文档
QDomDocumentFragment:QDomNodes的树,通常不是一个完整的QDomDocument
QDomDocumentType:DTD在文档树中的表示
QDomElement:表示DOM树中的一个元素
QDomEntity:表示XML实体
QDomEntityReference:表示XML实体引用
QDomImplementation:有关DOM实现的功能的信息
QDomNamedNodeMap:包含可以按名称访问的节点集合
QDomNode:DOM树中所有节点的基类
QDomNodeList:QDomNode对象的列表
QDomNotation:表示XML符号
QDomProcessingInstruction:表示XML处理指令
QDomText:表示已解析的XML文档中的文本数据
QXmlAttributes:XML属性
QXmlContentHandler:报告XML数据的逻辑内容的接口
QXmlDTDHandler:报告XML数据的DTD内容的接口
QXmlDeclHandler:报告XML数据的声明内容的接口
QXmlDefaultHandler:所有XML处理程序类的默认实现
QXmlEntityResolver:用于解析XML数据中包含的外部实体的界面
QXmlErrorHandler:用于报告XML数据中的错误的接口
QXmlInputSource:QXmlReader子类的输入数据
QXmlLexicalHandler:报告XML数据的词汇内容的接口
QXmlLocator:XML处理程序类,其中包含有关文件中解析位置的信息
QXmlNamespaceSupport:用于希望包括命名空间支持的XML阅读器的辅助类
QXmlParseException:用于使用QXmlErrorHandler接口报告错误
QXmlReader:XML读取器(即解析器)的接口
QXmlSimpleReader:实现一个简单的XML解析器
2、实现步骤
2.1、这里我用的是QXmlSimpleReader这个类,并且实现了自己的QXmlDefaultHandler子类,很多解析的操作都要在这个自己实现的子类中去完成。
自己实现的子类如下图所示:
这些是基本的操作,后面也可以实现增量解析如下图:
这些就是最基本的xml的操作,可以根据自己的需要在虚函数中写入自己的实现就OK了。这是4.8.6版本的xml解析,在5.5.1以后用的最多的最流的形式,至于哪个好用还需要根据自己的实际情况做选择。