基于Qt的xml简单的读写笔记
发布时间:2020-12-16 09:23:57 所属栏目:百科 来源:网络整理
导读:以下是测试的xml: config pathXXXXXXXXXXX/path path1XXXXXXXXXXX1/path1/config 读写xml的代码: #include "xmlutil.h"XmlUtil::XmlUtil(){}void XmlUtil::writeXml(QString path,QMapQString,QString map){ QFile file(path); if(not file.open(QIODevice
以下是测试的xml: <config> <path>XXXXXXXXXXX</path> <path1>XXXXXXXXXXX1</path1> </config>
读写xml的代码: #include "xmlutil.h" XmlUtil::XmlUtil() { } void XmlUtil::writeXml(QString& path,QMap<QString,QString>& map){ QFile file(path); if(not file.open(QIODevice::ReadWrite)) return; QDomDocument doc; QDomElement rootEle = doc.createElement("config"); doc.appendChild(rootEle); QMap<QString,QString>::const_iterator ite; for( ite=map.constBegin(); ite!=map.constEnd(); ite++){ cout << ite.key().toStdString() <<" " << ite.value().toStdString(); QDomElement pathEle = doc.createElement(ite.key()); pathEle.appendChild(doc.createTextNode(ite.value())); rootEle.appendChild(pathEle); } QTextStream out(&file); doc.save(out,QIODevice::ReadWrite); file.close(); } QMap<QString,QString>* XmlUtil::readXml(QString& path){ QMap<QString,QString>* map=new QMap<QString,QString>(); QFile file(path); if(!file.open(QIODevice::ReadOnly)){ return NULL; } QDomDocument doc; doc.setContent(&file); QDomElement rootEle = doc.documentElement(); //把全部二级item存放在list中 QDomNodeList secondItemlist = rootEle.childNodes(); for(int i = 0;i < secondItemlist.count();i++) { QDomNode node = secondItemlist.at(i); // cout<<endl<<node.toElement().nodeName().toStdString()<<"000000000000"<<node.toElement().text().toStdString()<<"++++++++++++++++"<<endl; map->insert(node.toElement().nodeName(),node.toElement().text()); }//end for file.close(); return map; } 测试: QMap<QString,QString> map; map.insert("path","XXXXXXXXXXX"); map.insert("path1","XXXXXXXXXXX1"); XmlUtil xml; QString path=QString::fromStdString("config.xml"); xml.writeXml(path,map); QMap<QString,QString>* ret=xml.readXml(path); QMap<QString,QString>::const_iterator ite; for( ite=ret->constBegin(); ite!=ret->constEnd(); ite++){ cout << ite.key().toStdString() <<" " << ite.value().toStdString(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |