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的 ...
随机推荐
- APP前端易用性和UI测试
移动APP使用场景的特点 1.屏幕小: 与Web系统相比,APP安装在手机端,展示屏幕只有几英寸,能够展示的信息就显得非常有限和珍贵,我们需要将有价值的信息放大,放在显眼的位置. 2.场景复杂化: 由 ...
- Grid Virtual Server 和 网格计算
Grid Virtual Server 的 Virtual Server 源于 LVS (Linux Virtual Server) , LVS 的意思就是把 多个 Linux 服务器 联合起来构成一 ...
- redis 学习资料
redis 学习资料 网址 Redis 教程(菜鸟教程) http://www.runoob.com/redis/redis-tutorial.html Redis 命令参考 http://redis ...
- python引入自定义模块
Python的包搜索路径 Python会在以下路径中搜索它想要寻找的模块:1. 程序所在的文件夹2. 标准库的安装路径3. 操作系统环境变量PYTHONPATH所包含的路径 将自定义库的路径添加到Py ...
- 最全Pycharm教程(1)——定制外观
http://blog.csdn.net/u013088062/article/details/50100121
- Azkaban介绍+安装部署+实战案例
Azkaban介绍 什么是azkaban?1.工作流的作业调度系统2.通过k.v指令写法描述工作流节点3.可以通过web界面去管理工作流 Azkaban安装部署 2.3.1 准备工作 Azkaban ...
- JAVAFX开发桌面应用
javafx中文版文档: http://www.yiibai.com/javafx/ JavaFX之FXController详解 JavaFx系列教程 含打包部署 javafx之两种局部界面的呈现方式 ...
- PHP代码实现2 [从变量和数据的角度] 1
PHP代码实现2 [从变量和数据的角度] 1 数据类型 1.静态类型语言,比如:C/Java等,在静态语言类型中,类型的检查是在<编译>(compile-time)确定的, 也就是说在运行 ...
- Android adb 模拟滑动 按键 点击事件
模拟事件全部是通过input命令来实现的,首先看一下input命令的使用: usage: input ... input text <string> input keyeven ...
- TensorFlow:tf.nn.max_pool实现池化操作
tf.nn.max_pool(value, ksize, strides, padding, name=None) 参数是四个,和卷积很类似: 第一个参数value:需要池化的输入,一般池化层接在卷积 ...