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的 ...
随机推荐
- 用Promise对象实现的 Ajax 操作
- Pycharm主题设置以及导入方式
主题下载链接: http://www.themesmap.com/ pycharm -- 导入主题(theme) and 修改背景颜色(护眼色) 前情提要 众所周知,随着python语言的不断流行 ...
- 利用 groupby apply list 分组合并字符
利用 groupby apply list 分组合并字符 因为需要对数据进行分组和合并字符,找到了以下方法. 有点类似 SQL 的 Group BY. import pandas as pd impo ...
- Javascript 中 的 for ... in 和 for ... of 差别
Javascript 中 的 for ... in 和 for ... of 差别 for ... in 是历史问题,在循环数据时会可以出现奇怪的问题,比如把数据的属性循环出来. for ... of ...
- JavaScript数组的一些奇葩行为
今天,复习了一下JavaScript的数组,然后,把他的一些奇葩行为总结了一下,在这里和大家share一下,如果有不对的地方,欢迎指出! 奇葩1:Array()构造器函数可以不使用new关键字进行调用 ...
- taro 事件处理
https://nervjs.github.io/taro/docs/event.html Taro 元素的事件处理和 DOM 元素的很相似.但是有一点语法上的不同: Taro 事件绑定属性的命名采用 ...
- Linux下Redis开机自启(Centos6)
1.设置redis.conf中daemonize为yes,确保守护进程开启. 查找redis配置文件redis.conf [root@localhost /]# find / -name redis. ...
- 八、springboot(五)配置定时器
1.修改启动类 @SpringBootApplication @EnableScheduling public class DemoApplication { public static void m ...
- 解决web项目存在多个log4j.properties配置文件,导致日志级别配置不生效问题
java开启log4j的debug模式 -Dlog4j.debug=true tomcat启动debug模式: linux打开catalina.sh导入: export JAVA_OPTS=" ...
- java集合之HashMap源码解析
Map是java中的一种数据结构,围绕着Map接口,有一系列的实现类如Hashtable.HashMap.LinkedHashMap和TreeMap.而其中HashMap和Hashtable我们平常使 ...