导语
从Qt 4.3开始引入了两个新的类来读取和写入XML文档:QXmlStreamReader和QXmlStreamWriter。QXmlStreamReader类提供了一个快速的解析器通过一个简单的流API来读取格式良好的XML文档,它是作为Qt的SAX解析器的替代品的身份出现的,因为它比SAX解析器更快更方便。QXmlStreamReader可以从QIODevice或者QByteArray中读取数据。流读取器的基本原理就是将XML文档报告为一个记号(tokens)流,这一点与SAX相似,而它们的不同之处在于XML记号被报告的方式。在SAX中,应用程序必须提供处理器(回调函数)来从解析器获得所谓的XML事件;而对于QXmlStreamReader,是应用程序代码自身来驱动循环,在需要的时候可以从读取器中一个接一个的拉出记号。这个是通过调用readNext()函数实现的,它可以读取下一个记号,然后返回一个记号类型,然后可以使用isStartElement()和text()等函数来判断这个记号是否包含我们需要的信息。使用这种主动拉取记号的方式的最大的好处就是可以构建递归解析器,也就是可以在不同的函数或者类中来处理XML文档中的不同记号。
环境:
Windows Xp + Qt 4.8.4+Qt Creator2.6.2
目录