基于Qt的xml简单的读写笔记

以下是测试的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();
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇