主要用到:QXmlStreamReader
头文件加入:
private:
QLabel *resultL;
QPushButton *readBtn;
private slots:
void readNodeSlot();
构造函数加入:
resultL = new QLabel(this);
resultL->setGeometry(QRect(50, 50, 300, 100));
//实例按钮
readBtn = new QPushButton(this);
readBtn->setText("读取title节点");
readBtn->setGeometry(QRect(50, 180, 150, 25));
connect(readBtn, &QPushButton::clicked, this, &MainWindow::readNodeSlot);
槽函数:
void MainWindow::readNodeSlot()
{
QString xmlPath = "D:/a001.xml";
QFile file(xmlPath);
QString str;
if(file.exists())
{
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QXmlStreamReader xmlRead(&file);
//循环节点
while(!xmlRead.atEnd())
{
//指针下移
xmlRead.readNext();
if(xmlRead.isStartElement())
{
//如果节点有等于title的
if(xmlRead.name() == "title")
{
//取title值赋予变量str
str = xmlRead.readElementText();
}
else
{
str = "没找到节点";
}
}
}
//将值绑定到QLabel控件显示
resultL->setText(str);
}
else
{
resultL->setText("文件打开失败");
}
file.close();
}
else
{
resultL->setText("文件不存在");
}
}