Qt 之解析 XML(QXmlStreamReader)

简述

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()。然后可以使用一组方便的函数 isStartElement() 和 text() 来检查标记,以获取已读取的信息。这种取出标记的方式最大优点是可以使用它构建递归下降解析器,也就是说,可以将 XML 解析代码轻松地分成不同的方法或类,这使得在解析 XML 时可以轻松跟踪应用程序自己的状态。

一个典型的 QXmlStreamReader 循环:

©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付39.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值