直接上代码
文件打开->实例QXmlStreamReader对象读取文件->如果不是文件末尾就继续一行一行读
重要的函数:
xmlRead.atEnd()
xmlRead.readNext()
xmlRead.isStartElement()
xmlRead.attributes()
attr.hasAttribute(“class”)
xmlRead.readElementText()
QFile file(xmlPath); //需要头文件#include <QFile>
QString str;
if(file.exists())
{
qDebug()<<"file open success";
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
//实例QXmlStreamReader对象读取文件
QXmlStreamReader xmlRead(&file);
//循环节点
// int i = 0;
while(!xmlRead.atEnd())
{
//指针下移
xmlRead.readNext();
//判断当前的记号是否为开始元素
if(xmlRead.isStartElement())
{
//过滤不要的节点
QXmlStreamAttributes attr = xmlRead.attributes();
//查找类名
if(xmlRead.name() == "widget" && attr.hasAttribute("class") && attr.hasAttribute("name") )
{
// Info info;
//取出class
QString class1 = attr.value("class").toString();
info.widgetClass = class1;
}
//如果节点名有等于x的
if(xmlRead.name() == "x")
{
//取x值赋予变量str
str = xmlRead.readElementText();
info.x = str.toInt();
}
}
}
file.close();
}
}
261

被折叠的 条评论
为什么被折叠?



