资源简介
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 xm
文件 17922 2014-05-05 11:14 xm
文件 2439 2014-05-05 11:14 xm
- 上一篇:QUARTUS的fpga中生成正弦波实验报告
- 下一篇:图像压缩编码
相关资源
- Skype 协议分析(2006版)
- 完美获取 CPU 的 NUMA节点数、CPU插槽个
- 物联网中无线传感器节点和RFID数据融
- tekla 自定义节点
- 浅谈钢框架梁柱连接节点设计
- 考虑非刚性梁柱节点时钢筋混凝土框
- 装配式钢管桁架、支架拼接节点关键
- 基于CAN总线与ZigBee的瓦斯实时监测及
- 基于ZigBee技术的井下无线瓦斯传感器
- poi 动态修改docx窗体域内容,并存为
- PBDOM 遍历一个节点下的所有节点name及
- 工业无线网络WIA—PA终端节点设计
- jtopo.rar jtopo拓扑图两节点双线连接
- 四角锥钢铸节点有限元分析
- 协作通信中的中继节点选取和功率分
- IEEE9-IEEE300节点数据(全)
- Termite-20180926.rar
- 潮流数据各节点数据图14/30/57/118/300
- IEEE标准节点数据
- lora 节点 通信源码 实测没问题 SX12
- 无线传感器网络中节点定位算法 硕士
- 北京动力节点-Reyco郭-SSM前言.pdf
- 北京动力节点-Reyco郭-MyBatis316年最新版
- 13节点配电网的建模与仿真
- 广联达无驱写网络锁及网络锁增加节
- 工业互联网标识二级节点(佛山)建
- 动力节点-reyco郭-spring4讲义
- ssr3个高效节点.rar
- 二机五节点的潮流程序
- 基于STM32节点和阿里云LOT的物联网全栈
评论
共有 条评论