//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的更多相关文章

  1. QT XML文档的解析 QXmlStreamReader, DOM,SAX 三种解析方法 简单示例

    0. xml文档如下 <?xml version="1.0"?> <bookindex> <entry term="sidebearings ...

  2. Qt XML的使用

    Qt中对于XML文件的写入有两种方式,一个是使用QXmlStreamWriter,另一个则为使用Dom.stream流的形式相对来说更加灵活,而且适合处理大文件.Dom方式由于是将内容加载到了内存中进 ...

  3. Qt XML读取写入操作

    XML(eXtensible Markup Language,可扩展标记语言)是普通用于数据交换和数据存储的一种多用途文本文件格式: SVG(可标量矢量图形)XML格式,QtSvg模块提供了可用于载入 ...

  4. htm Dom对象与 Xml Dom对象的理解

    html 是基于Xml的文档规范.是一种特殊的xml文档,这一点很重要 1.xml 文档的操作,java,c#,...各种语言都提供了很好的api对文档进行解析,操作.当然js 也不例外,提供了一系列 ...

  5. python 解析XML python模块xml.dom解析xml实例代码

    分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...

  6. python 应用xml.dom.minidom读xml

    xml文件 <?xml version="1.0" encoding="utf-8"?> <city> <name>上海&l ...

  7. XML DOM 循环(foreach)读取PHP数据 和 PHP 编写 XML DOM 【转载】

    用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖.实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP 读取和编写 XML 不一定是项恐怖的任务.首先,需要学习一点关于 XM ...

  8. PHP XML DOM

    PHP XML DOM 内建的 DOM 解析器使在 PHP 中处理 XML 文档成为可能. DOM 是什么? W3C DOM 提供了针对 HTML 和 XML 文档的标准对象集,以及用于访问和操作这些 ...

  9. JavaScript 【 IE中的XML DOM 】

    IE中的 XML DOM 在统一的正式规范出来以前,浏览器对于XML的解决方案各不相同.DOM2级提出了动态创建XML DOM规范,DOM3进一步增强了XML DOM.所以,在不同的浏览器实现XML的 ...

随机推荐

  1. UWP --- Display Content 显示基础内容

    UWP前端使用的是XAML语言, 这门语言和Xamarin Forms 是比较类似(当你开发多了之后会发现StackPanel和StackLayout傻傻的分不清) 言归正传. UWP中显示内容最简单 ...

  2. 在CentOS 6上使用 AWStats 分析 httpd 和 Tomcat 日志

    准备工作: Awstats 是由perl语言编写的,所以要首先准备好awstats的运行环境.# yum install –y perl*   Apache 一.首先,要安装apache服务器,并且启 ...

  3. c/c++编译和链接过程

    编译器把一个cpp编译为目标文件的时候,除了要在目标文件里写入cpp里包含的数据和代码,还要至少提供3个表:未解决符号表,导出符号表和地址重定向表. 未解决符号表提供了所有在该编译单元里引用但是定义并 ...

  4. 手动部署etcd-2018-0731

    手动部署很简单,这里花了10分钟搞定 部署etcd 3台机器 etcd:由于 raft 算法的特性,集群的节点数必须是奇数 [root@linux-node1 ~]# cat /etc/hosts 1 ...

  5. 用C语言解决python多线程中的GIL问题

    在使用python多线程的时候为了解决GIL问题,有些代码得用C语言写,那么就得生成动态链接库. 当创建动态链接库时,独立位置信息(position independent)代码也需要生成.这可以帮助 ...

  6. MySQL命令行下执行sql文件(sql脚本)

    在mysql命令行下执行sql文件(sql脚本) mysql> source    sql文件完整路径 如: mysql> source   D:\\MySQL\\create.sql 文 ...

  7. Intellj(IDEA)创建java webapp

    1. 创建工程 2. 创建Java文件 并且将java文件夹将设置为Sources Root 3. 创建test文件夹,并且在test文件夹下面创建java文件夹 将test下面的java文件夹标记为 ...

  8. MySQL体系架构

    MySQL体系架构 学习一门数据库系统首先得了解它的架构,明白它的架构原理对于后期的分析问题和性能调优都有很大的帮助,接下来就通过分析架构图来认识它. 数据库:物理操作系统文件或者其它文件的集合,在m ...

  9. Linux重定向及nohup不输出的方法

    转载自:http://blog.csdn.net/qinglu000/article/details/18963031   先说一下linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信 ...

  10. MySQL 5.7 Invalid default value for 'CREATE_TIME'报错的解决方法

    出处:http://blog.itpub.net/15498/viewspace-2136006/ 由于数据库的升级,今天在执行从MySQL 5.6导出来的SQL文件时报错: mysql> so ...