Qt之解析XML元素

Qt之解析XML元素

ID:37893955

大小:27.50 KB

页数:5页

时间:2019-06-02

Qt之解析XML元素_第1页
Qt之解析XML元素_第2页
Qt之解析XML元素_第3页
Qt之解析XML元素_第4页
Qt之解析XML元素_第5页
资源描述:

《Qt之解析XML元素》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Qt之解析XML元素(QXmlStreamReader)简述对于XML的内容,通常情况下,我们只关心XML元素的解析。这时,可以通过QXmlStreamReader中的便利函数readNextStartElement()来实现。简述详细介绍使用更多参考详细介绍之前使用的方式主要使用readNext()来读取下一个标记,并返回对应的类型。QXmlStreamReaderxml;...while(!xml.atEnd()){xml.readNext();...//做处理}if(xml.hasError()){...//做错误处理}这对于读取注释、字符、DTD、结束标签等

2、类型比较方便。当只关心XML元素的解析,这时,此种方式就显得比较复杂了,下面介绍一种简单方式。在介绍之前,先明确一个概念:当前元素:当前元素是匹配最近解析的开始元素的元素,其中匹配的结束元素尚未到达。当解析器到达结束元素时,当前元素将成为父元素。下面,主要用到QXmlStreamReader的两个接口:boolreadNextStartElement()读取,直到当前元素的下一个开始元素。当达到开始元素时,返回true;当达到结束元素或发生错误时,返回false。voidskipCurrentElement()读取,直到当前元素的结尾,跳过任何子节点。此函数对于跳过

3、未知元素非常有用。使用为了便于演示,使用上节生成的格式化XML(Blogs.xml):

4、PCDATA)>]><作者>一去丶二三里<主页>http://blog.csdn.net/liang19890820<个人说明>青春不老,奋斗不止!&Copyright;368241647]]>>封装一个解析类XMLReader,XMLReader.h如下所示:#ifndefXMLRE

5、ADER_H#defineXMLREADER_H#includeclassXMLReader{public:XMLReader();boolread(QIODevice*device);QStringerrorString()const;//错误信息private:voidreadXBEL();//读取根元素voidreadBlog();//读取元素voidreadAuthor();//读取元素<作者>voidreadHOME();//读取元素<主页>voidreadInstruction();//读取元

6、素<个人说明>QXmlStreamReaderxml;};#endif//XMLREADER_HXMLReader.cpp如下所示:#include"XMLReader.h"#include#defineROOT_ELEMENT"Blogs"#defineBLOG_ELEMENT"Blog"#defineAUTHOR_ELEMENTQString::fromLocal8Bit("作者")#defineHOME_ELEMENTQString::fromLocal8Bit("主页")#defineINSTRUCTION_ELEMENTQString::f

7、romLocal8Bit("个人说明")#defineVERSION_ATTRIBUTE"Version"XMLReader::XMLReader(){}boolXMLReader::read(QIODevice*device){xml.setDevice(device);if(xml.readNextStartElement()){QStringstrName=xml.name().toString();if(strName==ROOT_ELEMENT){//获取根元素QXmlStreamAttributesattributes=xml.attributes(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。