Qt 操作QDomDocument对象修改节点
代码部分:
QFile file(filePath);
if (!file.open(QFile::ReadOnly | QFile::Text))
{
QMessageBox::critical(NULL,tr("错误"),tr("无法打开%1文件").arg(filePath),QMessageBox::Ok);
return;
}
QString error;
int row = 0;
int col= 0 ;
QDomDocument dom;
if (!dom.setContent(&file, false, &error, &row, &col))
{
QMessageBox::warning(0, tr("error"), tr("错误%1, 行%2, 列%3").arg(error).arg(row).arg(col), QMessageBox::Yes);
file.close();
return;
}
QDomElement root = dom.documentElement();// 根节点
QDomNodeList nlist = root.elementsByTagName("tag"); //要修改的tag
for (int i=0; i<nlist.count(); i++)
{
QDomElement ele = nlist.at(i).toElement();
//关键1
QDomNode oldNode = ele.firstChild(); //旧节点
ele.firstChild().setNodeValue(QString::number(channel)); //改值
QDomNode newNode = ele.firstChild(); //新节点
ele.replaceChild(newNode, oldNode); //替换
}
file.close();
//关键2
QFile wfile(filePath);
if (!wfile.open(QIODevice::WriteOnly))
{
QMessageBox::critical(NULL,tr("错误"),tr("无法打开%1文件").arg(filePath),QMessageBox::Ok);
return;
}
QTextStream out(&wfile);
QString save = dom.toString();
out << dom.toString();
wfile.close();
用一个dom对象,两个文件对象, 一个读打开修改,令一个重写, 直接修改不成功.
Qt 操作QDomDocument对象修改节点的更多相关文章
- java操作xml文件--修改节点
上一篇文章我介绍了SAX方法解析XML文件的过程,这篇文章讲解的内容是利用DOM方法修改XML文件的节点内容. 下面依然是首先贴出XML文件: <?xml version ...
- 在Javascript操作JSON对象,增加 删除 修改
在Javascript操作JSON对象,增加删除修改全有的,详情见代码 <script type="text/javascript"> var jsonObj2 = { ...
- c#操作xml的代码(插入节点、修改节点、删除节点等)
bookstore.xml文件内容: 复制代码代码示例: <?xml version="1.0" encoding="gb2312"?><bo ...
- easyUI 的tree 修改节点,sql递归查询
1.easyUI 的tree 修改节点: 我需要:切换语言状态,英文下, 修改根节点文本,显示英文. 操作位置:在tree的显示 $('#tree').tree(),onLoadSuccess事件方法 ...
- DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢,而是说操作了这个对象后,会触发一些浏览器行为(转)
一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来. 首先,DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢 ...
- Zookeeper--0300--java操作Zookeeper,临时节点实现分布式锁原理
删除Zookeeper的java客户端有 : 1,Zookeeper官方提供的原生API, 2,zkClient,在原生api上进行扩展的开源java客户端 3, 一.Zookeeper原生API ...
- JQuery制作网页—— 第三章 JavaScript操作DOM对象
1. DOM:Document Object Model(文档对象模型): DOM操作: ●DOM是Document Object Model的缩 ...
- Javascript学习笔记——操作浏览器对象
Javascript学习笔记 目前尝试利用javascript去对于一个浏览器对象完成一系列的访问及修改, 浏览器是网页显示.运行的平台,常用的浏览器有IE.火狐(Firefox).谷歌(Chrome ...
- 操作DOM对象
操作DOM对象 目录 操作DOM对象 1. 核心 2. 获得Dom节点 3. 更新节点 1. 操作文本 2. 操作CSS 4. 删除节点 5. 插入节点 1. 追加(将已存在的节点移到后面) 2. 创 ...
随机推荐
- flashdevelop调用ios方法
来源:http://blog.csdn.net/zu12jing/article/details/7331397 flash开发工具用的是flashdevelop(由于flashdevelop还能直接 ...
- 批量导入数据到InnoDB表速度优化
1.使用Load data: 2. SET autocommit=0; ... SQL import statements ... COMMIT; 3. SET unique_checks=0; .. ...
- Linux磁盘管理——MBR 与 GPT
硬件设备在Linux中文件名 如今IDE 磁盘几乎被淘汰,市面上最常见的磁盘就是SATA和SAS.个人计算机主要是SATA.很多Linux发行版下都将IDE磁盘文件名也都被仿真成 /dev/sd[a- ...
- 搭建MySQL MMM高可用
搭建MMM: 1,安装 agent 节点执行 yum install -y mysql-mmm-agent 2, monitor 节点执行 yum install -y mysql-mmm-monit ...
- unity 之 背包系统
此方法只是用于学习和实验所以细节不必要求 一.Ui设置. 画布配置如下: 布局: 说明: 画布里面首先建立一个panel命名为weapon1,在其内部再建立4个panel用于装备的卡槽,装备以imag ...
- WebSocket使用中Stomp Client连接报ERROR CODE 200的解决办法
[转] https://www.cnblogs.com/chrischeng/p/10237523.html 最近在做一个WebSocket项目,后台使用了Stomp协议的WebSocketConfi ...
- IDEA实用教程(七)—— IDEA的断点调试
IDEA实用教程(七)-- IDEA的断点调试 23/100 发布文章 qq_41684621 六. IDEA的断点调试 打断点 在行号的右侧点击鼠标左键,出现红色圆形图标,说明已经被打上断点 Deb ...
- 小程序生命周期(onLaunch、onShow、onHide、onReady、onLoad、onUnloa)
(1)onlaunch:当小程序初始化完成时,会触发 onLaunch(全局只触发一次)(app.js):(2)onLoad: 页面加载小程序注册完成后,加载页面,触发onLoad方法.一个页面只会调 ...
- 使用Restful风格中的post使用过遇到前端数据传送不到后端
问题描述:使用postman进行请求时候,前端的数据,一直在后端接收不到,找了好多资料,竟然是因为一个注解的原因. 后端接收设置:@RequestParam@ReqeustBody设置的原因 因为sp ...
- 数据分析常用shell命令
目录 0.vim编辑器 1.awk命令(重要) 1.1 基本语法 1.2 基本用法 1.3 运算符 1.4 内建变量 1.5 其他 1.6 awk是一门变成语言,支持条件判断.数组.循环等功能.所以我 ...