• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: 节点  QT和XML  

资源简介

QT对XML进行,创建文件,添加节点,查找节点,删除节点,在节点下添加键值,读取指定节点下键值。最多支持4层节点。如果要需要在多级的节点进行操作,可以参照我的函数进行添加重载函数,很方便的。

资源截图

代码片段和文件信息

#include “ModelConfigurationxml.h“
#include 
#include 
#include 

ModelConfigurationxml::ModelConfigurationxml()
{

}

void ModelConfigurationxml::createxml(QString filename)
{
    QFile file(filename);
    file.open(QIODevice::ReadWrite);
    QDomDocument doc;
//    QDomProcessingInstruction instruction;
//    instruction = doc.createProcessingInstruction(“xml““version=\“1.0\“ encoding=\“GB2312\““);
//    doc.appendChild(instruction);
    QDomElement root = doc.createElement(“YiChiProject“);
    doc.appendChild(root);
    QTextStream out(&file);
    doc.save(out4);
    file.close();
}
// 添加1级节点
void ModelConfigurationxml::addNode(QString filenameQString node1)
{
    QFile file(filename);
    if (!file.open(QIODevice::ReadOnly | QFile::Text)) {
        qDebug()<<“addRootNode open for add error...“ ;
    }
    QDomDocument doc;
    doc.setContent(&file false);
    file.close();
    QDomElement root = doc.documentElement();
    QDomNode nd = findNode(root node1);
    if(nd.isNull()){ //检查节点是不是不存在
        QDomElement child = doc.createElement(node1);
        root.appendChild(child);
    }
    if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate))
    qDebug() << “open for add error!“;
    QTextStream out(&file);
    doc.save(out4);
    file.close();
}
// 添加二级节点
void ModelConfigurationxml::addNode(QString filename QString node1 QString node2)
{
    QFile file(filename);
    if (!file.open(QIODevice::ReadOnly)) {
        qDebug()<<“addRootChildNode open for add error...“ ;
    }
    QDomDocument doc;
    doc.setContent(&file false);
    file.close();
    QDomElement root = doc.documentElement();
    //查找这个步骤
    QDomNode nd1 = findNode(root node1);
    if(nd1.isNull()){  // 检查rootNode节点是否存在
        addNode(filename node1);
        file.open(QIODevice::ReadOnly);
        doc.setContent(&file false);
        file.close();
        root = doc.documentElement();
    }
    QDomNode nd2 = findNode(root node1 node2);
    if(nd2.isNull()){   // 检查node节点是否存在
        nd1 = findNode(root node1); // 此处nd1必须重新查找1次 上一次nd1和这次nd1查找的节点,不是在同一个doc下
        QDomElement nd22 = doc.createElement(node2);
        nd1.appendChild(nd22);
    }


    if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate))
    qDebug() << “open for add error!“;
    QTextStream out(&file);
    doc.save(out4);
    file.close();
}
// 添加3级节点
void ModelConfigurationxml::addNode(QString filename QString node1 QString node2 QString node3)
{
    QFile file(filename);
    if (!file.open(QIODevice::ReadOnly)) {
        qDebug()<<“addNode3 open for add error...“ ;
    }
    QDomDocument doc;
    doc.setContent(&file false);
    file.close();
    QDomElement root = doc.documentElement();

    QDomNode nd1 = findNode(root node1);
    if(nd1.isNull()){
        addNode(filename node1);
        file.open(QIODevice::ReadOnly);
        doc.setContent(&file false);
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-05-05 11:19  xml\
     文件       17922  2014-05-05 11:14  xml\ModelConfigurationxml.cpp
     文件        2439  2014-05-05 11:14  xml\ModelConfigurationxml.h

评论

共有 条评论