Qt Xml Dom
//Dom方式更改节点信息
bool XmlTools::SetValue(QString name,float exposure,float gain,float gamma,int brightness)
{
#if 0
QFile file("fileName.xml");
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
return -;
QTextStream out(&file);
QDomDocument doc;
QDomText text;
QDomElement element;
QDomAttr attr;
QDomProcessingInstruction instruction;
instruction = doc.createProcessingInstruction( "xml", "version = \'1.0\' encoding=\'UTF-8\'" );
doc.appendChild( instruction ); QDomElement root = doc.createElement( "COMMAND" );
doc.appendChild(root);
element = doc.createElement( "OBJECT" );
text = doc.createTextNode( "USER" );
element.appendChild(text);
root.appendChild(element); element = doc.createElement( "ACTION" );
text = doc.createTextNode( "LOGIN" );
element.appendChild(text);
root.appendChild(element); element = doc.createElement( "DATA" );
root.appendChild(element); QDomElement userElement = doc.createElement( "USERINFO" );
attr = doc.createAttribute( "NAME" );
attr.setValue("root");
userElement.setAttributeNode(attr);
attr = doc.createAttribute( "PASSWORD" );
attr.setValue("");
userElement.setAttributeNode(attr);
element.appendChild(userElement); doc.save(out, ); //each line space of file is 4
return ;
#else if
QDomDocument doc;
QFile file("config/3vcam.xml");
QString error = "";
int row = , column = ;
if (!file.open(QIODevice::ReadOnly)) return -; if(!doc.setContent(&file, false, &error, &row, &column))
{
qDebug() << "parse file failed:" << row << "---" << column <<":" <<error;
file.close();
return -;
} file.close(); QDomElement root = doc.documentElement();
QDomNode node = root.firstChild();
while(!node.isNull())
{
QDomElement element = node.toElement(); // try to convert the node to an element.
if(!element.isNull())
{
qDebug()<<element.tagName() << ":" << element.text();
printf("element.tagName:%s,element.text:%s\n",element.tagName().toLatin1().data(),element.text().toLatin1().data());
fflush(stdout);
if (element.hasAttribute("id"))
{
printf("---id:%s---\n",element.attributeNode("id").value().toLatin1().data());
}
QDomNode nodeson = element.firstChild();
bool bNeedUpdate = false;
while(!nodeson.isNull())
{
QDomElement elementson = nodeson.toElement();
if(!elementson.isNull())
{
if (elementson.tagName() == "name" && name == elementson.text())
{
printf("---name:%s---\n",elementson.text().toLatin1().data());
bNeedUpdate = true;
}
else if(elementson.tagName() == "exposure" && bNeedUpdate)
{ printf("---exposure:%s---\n",elementson.text().toLatin1().data());
nodeson.firstChild().setNodeValue(QString::number(exposure));
}
else if(elementson.tagName() == "gain" && bNeedUpdate)
{ printf("---gain:%s---\n",elementson.text().toLatin1().data());
nodeson.firstChild().setNodeValue(QString::number(gain));
}
else if(elementson.tagName() == "gamma" && bNeedUpdate)
{ printf("---gamma:%s---\n",elementson.text().toLatin1().data());
nodeson.firstChild().setNodeValue(QString::number(gamma));
}
else if(elementson.tagName() == "brightness" && bNeedUpdate)
{
bNeedUpdate = false;
printf("---brightness:%s---\n",elementson.text().toLatin1().data());
nodeson.firstChild().setNodeValue(QString::number(brightness));
}
}
nodeson = nodeson.nextSibling();
}
}
node = node.nextSibling();
} QFile file2("config/3vcam.xml");
if (!file2.open(QIODevice::WriteOnly | QIODevice::Truncate)) return -;
QTextStream out(&file2);
doc.save(out, );
file2.close(); return ; #endif
}
Qt Xml Dom的更多相关文章
- QT XML文档的解析 QXmlStreamReader, DOM,SAX 三种解析方法 简单示例
0. xml文档如下 <?xml version="1.0"?> <bookindex> <entry term="sidebearings ...
- Qt XML的使用
Qt中对于XML文件的写入有两种方式,一个是使用QXmlStreamWriter,另一个则为使用Dom.stream流的形式相对来说更加灵活,而且适合处理大文件.Dom方式由于是将内容加载到了内存中进 ...
- Qt XML读取写入操作
XML(eXtensible Markup Language,可扩展标记语言)是普通用于数据交换和数据存储的一种多用途文本文件格式: SVG(可标量矢量图形)XML格式,QtSvg模块提供了可用于载入 ...
- htm Dom对象与 Xml Dom对象的理解
html 是基于Xml的文档规范.是一种特殊的xml文档,这一点很重要 1.xml 文档的操作,java,c#,...各种语言都提供了很好的api对文档进行解析,操作.当然js 也不例外,提供了一系列 ...
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
- python 应用xml.dom.minidom读xml
xml文件 <?xml version="1.0" encoding="utf-8"?> <city> <name>上海&l ...
- XML DOM 循环(foreach)读取PHP数据 和 PHP 编写 XML DOM 【转载】
用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖.实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP 读取和编写 XML 不一定是项恐怖的任务.首先,需要学习一点关于 XM ...
- PHP XML DOM
PHP XML DOM 内建的 DOM 解析器使在 PHP 中处理 XML 文档成为可能. DOM 是什么? W3C DOM 提供了针对 HTML 和 XML 文档的标准对象集,以及用于访问和操作这些 ...
- JavaScript 【 IE中的XML DOM 】
IE中的 XML DOM 在统一的正式规范出来以前,浏览器对于XML的解决方案各不相同.DOM2级提出了动态创建XML DOM规范,DOM3进一步增强了XML DOM.所以,在不同的浏览器实现XML的 ...
随机推荐
- C# HttpClient请求Webapi帮助类
引用 Newtonsoft.Json // Post请求 public string PostResponse(string url,string postData,out string status ...
- Spring技术内幕总结 - IoC容器的实现
IoC:Inversion of Control,控制反转,即依赖对象的获得被反转了(DI:dependency inversion,依赖注入)在Spring中,IoC容器是实现这个模式的载体.它可以 ...
- node api 之:fs
fs.readFile() 函数会缓存整个文件. 为了最小化内存占用,尽可能优先使用 fs.createReadStream().
- node api 之:util
util 库的使用: const util = require('util'); util 的方法: 方法 含义 util.inherits(constructor, superConstructor ...
- Maven项目main和test文件夹说明
需要自己来手动调整项目目录, Maven项目通常划分为 main 和 test 两部分,main 中存放实际项目资源,test 存放测试项目资源,二者内部同时又划分为 source 和 resourc ...
- 修改ORA-28001 口令已经失效问题
Oracle默认密码的有效时间为180天,当超过180天时,将出现如下错误 解决方法: 使用Oracle SQL Developer登录Oralce, 以as sysdba登录 登录后,执行 sele ...
- NET设计模式 第二部分 行为型模式(18):观察者模式(Observer Pattern)
概述 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知.如果这样的依赖关系过于紧密,将使软件不能很好地抵御 ...
- Spring Cloud Feign Ribbon 配置
由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参 ...
- 排序算法<No.6>【插入排序】
算法,我在路上,将自己了解的算法内容全部梳理一遍! 今天介绍简单点的,插入排序. 首先,什么是插入排序,这个维基百科上有.个人的理解,就是将一个数插入到一个已经排好序的数列当中某个合适的位置,使得增加 ...
- CheckFail设计很垃圾
function checkFail(node, onError, fuckIE) { var id = node.src;//检测是否死链 node.onlo ...