#include<QtXml/QDomDocument>
#include<QFile>
<X>内容</X> xml文件内容是以此为块来区分; x为标签(键),对应QMap的键,内容为值;一个xml的根节点是文件内的第一个<x></x>,其内部<x></x>的都是他的子节点;
首先、 确认xml内的格式正确,<x></x>不能丢失“/”; 键值一对一,不要有野值;
第一步、确保xml文件以需求方式正常打开
QFile file("F:/5.7/projectt/untitled3/config.xml");//xml文件位置
if(!file.open(QFile::ReadOnly))//读取方式
{ 文件打开失败时的情况 }
if(file.open(QFile::ReadOnly))
{ //参数为xml文件的打开方式,if用来确定文件被打 }
第二步、将xml内容复制给QDomDocument
QDomDocument doc;//创建QDomDocument文件
if(doc.setContent(&file) )//将xml文件内容拷贝到QDomDocument文件中,可以独立出来使用(不加if)
{
file.close();//记得关闭xml文件
qDebug()<<"复制成功"; }
第三步、找到要读取的键值
QDomElement root= doc.documentElement();//对象,元素 root为根节点也就是第一个节点<x></x> 其内部的为其子节点:
QDomNode node=root.firstChild();//第一个子节点,每一个节点都是QDomNode数据类型(int)
QDomNode nodeNext=node.nextSibling();//node(根节点也可以)的下一个节点 用于遍历xml用,类似于循环的++ 如果内部子节点不是一个
QDomNode node1=root.childNodes().at(0);//自己定义第几个节点
第四步,读取内容
具体某个节点后,读取它的键、值 QString jian= node1.toElement().tagName();//键,即标签
QString zhi= node1.toElement().text();//值,即数据