QT QXmlStreamWriter用法小结
一 API介绍
writeStartDocument():写文档头,作用类似于创建一个xml文档,并在文档开头部分写入版本信息和编码信息,一般为: <?xml version="1.0" encoding="UTF-8"?>
writer.writeEndDocument():对应于writeStartDocument(),当调用这个函数时,即表示文档信息写入完毕
writeStartElement():写入开始记号,即<>
writeEndElement():写入结束记号,即</>
writeTextElement():写入文本信息记号,如短信的发送人、短信内容、短信时间等
二 应用实例
我们以写入message.xml为例,写入数据后,xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<DATA>
<Sms>
<Name>wlc</Name>
<Number>18725658147</Number>
<Content>短信测试1</Content>
<Time>2012-07-25 23:54:10</Time>
</Sms>
<Sms>
<Name>rt</Name>
<Number>13555555555</Number>
<Content>短信测试2</Content>
<Time>2012-07-26 00:21:24</Time>
</Sms>
<Sms>
<Name>wzg</Name>
<Number>18656765434</Number>
<Content>短信测试3</Content>
<Time>2012-07-26 00:22:03</Time>
<Type>0</Type>
<Read>1</Read>
</Sms>
</DATA>
xml写入数据的代码如下,通过阅读实例代码,我们应该很容易理解第一步中介绍的API,以及API的调用顺序。
- void MsgModel::save_messge()
- {
- QFile file("message.xml");
- if(file.open(QIODevice::WriteOnly | QIODevice::Text))
- {
- QXmlStreamWriter writer(&file);
- writer.setAutoFormatting(true);
- writer.writeStartDocument();
- writer.writeStartElement("DATA");
- std::multimap<QString, Message*>::iterator pos;
- for(pos = message_map->begin();pos != message_map->end();pos++)
- {
- Message *message = pos->second;
- writer.writeStartElement("Sms");
- writer.writeTextElement("Name", message->GetMsgName());
- writer.writeTextElement("Number", message->GetMsgPhone());
- writer.writeTextElement("Content", message->GetMsgContent());
- writer.writeTextElement("Time", message->GetMsgTime());
- writer.writeEndElement();
- }
- writer.writeEndElement();
- writer.writeEndDocument();
- file.close();
- }
- }
QT QXmlStreamWriter用法小结的更多相关文章
- QT QTableView用法小结
QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: 一 添加表头 //准备数据模型 QStandardItemModel *student_model = new QS ...
- 【转载】QT QTableView用法小结
原始日期: 2016-08-16 09:28 来源:http://blog.csdn.net/wang_lichun/article/details/7805253 QTableView常用于实现数据 ...
- 转载:QT QTableView用法小结
出自: http://blog.chinaunix.net/uid-20382483-id-3518513.html QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: ...
- 转载:Hadoop排序工具用法小结
本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...
- [No000010]Ruby 中一些百分号(%)的用法小结
#Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...
- C++ typedef用法小结 (※不能不看※)
C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...
- 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)
函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...
- 1:CSS中一些@规则的用法小结 2: @media用法详解
第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下 at-rule ...
- 英语语法最终珍藏版笔记- 21it 用法小结
it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...
随机推荐
- QPixmap,QImage图片大小缩放linux版
注意事项: 1.装载图片的地址有时候会读取不到.可以多摸索一下当前系统对应的格式. 2.scaled缩放方式选择 3.注意保存路径.下面程序保存路径是当前执行文件目录中. PicOpera::PicO ...
- ubuntu修改主机名称
一.为何要修改主机名称 在安装Ubuntu时,一不小心主机名称输入的“too long”了,导致命令行上就提示符占据了一行的1/3,迫使我产生修改主机名称的冲动. 二.操作方法 原理:系统启动时,会从 ...
- Android Studio与Genymontion的安装
需要安装的软件: VirtualBox 5.1.4 Genymotion 2.7.2 Android Studio 2.1.2 安装步骤: 使用安装版安装Android Studio 1. 执 ...
- Keras如何构造简单的CNN网络
1. 导入各种模块 基本形式为: import 模块名 from 某个文件 import 某个模块 2. 导入数据(以两类分类问题为例,即numClass = 2) 训练集数据data 可以看到,da ...
- HJA的异或值
HJA的异或值 查看 提交 统计 提问 总时间限制: 20000ms 内存限制: 512000kB 描述 形态形成场(Morphogenetic Field)假说是Rupert Sheldrake ...
- 如何使用 Python 创建一个 NBA 得分图?
本文意在创建一个得分图,该图同时描绘了从场上不同位置投篮得分的百分比和投篮次数,这和 Austin Clemen 个人网站上的帖子 http://www.austinclemens.com/shotc ...
- win7中的Uac与开机自动启动(好几种办法,特别是用不带UAC的程序启动UAC程序是一个简单的好办法,写驱动自启动更是了不得)
在另一篇文章中已经介绍了给Exe加上Uac的方法,在使用的过程中我们会发现,如果把带Uac的Exe写入注册表的Run中,是无法实现开机自动启动的,原因就是带Uac的exe需要申请管理员权限,以便运行执 ...
- 关于spring3中No Session found for current thread!and Transaction的配置和管理(转)
今天我是特别的郁闷,本来项目做到一半,以前都好好的,结果下午就出现问题,苦逼的到现在才解决.它出现问题的时候都一声不坑, ,(天啦,现在才发现CSDN啥时候把QQ表情给整过来了)就在注册用户的时候,咦 ...
- python模块与包加载机制
模块的搜索路径: When a module named spam is imported, the interpreter searches for a file named spam.py in ...
- 浅谈云计算之SAN扩展系统设计
设计背景:不管是公有云还是私有云,为了提供服务的持续性(Business Continuity,BC)和数据的灾难恢复(Disaster Recovery,DR)都不可能只有一个数据中心(Data C ...