QT DOC方式读取XML文件

 
 
 
 

 #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();//值,即数据

第五步,验证
     qDebug()<<jian<<"           "<<zhi;

猜你喜欢

转载自blog.csdn.net/qq_41672557/article/details/80197498