作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
QXmlStreamReader 类提供了一个快速解析器,用于通过简单的流 API 读取格式良好的 XML。与之相对应的是 QXmlStreamWriter(写入 XML)。
相比较 Qt 自己的 SAX 解析器(见 QXmlSimpleReader),QXmlStreamReader 更快,更方便。某些情况下,在使用 DOM 树(见 QDomDocument)的应用程序中,它也可能是一个更快,更方便的替代方案。
QXmlStreamReader 可以从 QIODevice(见 setDevice())或原始 QByteArray(见 addData())中读取数据。
详细介绍
QXmlStreamReader 的基本概念是将 XML 文档呈现为标记流,类似于 SAX。
QXmlStreamReader 和 SAX 的主要不同点在于如何呈现 XML 标记。
- 使用 SAX,应用程序必须提供处理程序(回调函数),在解析器方便的情况下,从解析器中接收所谓的 XML 事件。
- 使用 QXmlStreamReader,应用程序代码本身驱动循环,并从 reader 中取出标记,一个接一个。通过调用 readNext() 完成,reader 从输入流中读取,直到完成下一个标记,此时返回 tokenType()。然后可以使