一 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的调用顺序。

  1. void MsgModel::save_messge()
  2. {
  3. QFile file("message.xml");
  4. if(file.open(QIODevice::WriteOnly | QIODevice::Text))
  5. {
  6. QXmlStreamWriter writer(&file);
  7. writer.setAutoFormatting(true);
  8. writer.writeStartDocument();
  9. writer.writeStartElement("DATA");
  10. std::multimap<QString, Message*>::iterator pos;
  11. for(pos = message_map->begin();pos != message_map->end();pos++)
  12. {
  13. Message *message = pos->second;
  14. writer.writeStartElement("Sms");
  15. writer.writeTextElement("Name", message->GetMsgName());
  16. writer.writeTextElement("Number", message->GetMsgPhone());
  17. writer.writeTextElement("Content", message->GetMsgContent());
  18. writer.writeTextElement("Time", message->GetMsgTime());
  19. writer.writeEndElement();
  20. }
  21. writer.writeEndElement();
  22. writer.writeEndDocument();
  23. file.close();
  24. }
  25. }

QT QXmlStreamWriter用法小结的更多相关文章

  1. QT QTableView用法小结

    QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: 一 添加表头 //准备数据模型 QStandardItemModel *student_model = new QS ...

  2. 【转载】QT QTableView用法小结

    原始日期: 2016-08-16 09:28 来源:http://blog.csdn.net/wang_lichun/article/details/7805253 QTableView常用于实现数据 ...

  3. 转载:QT QTableView用法小结

    出自: http://blog.chinaunix.net/uid-20382483-id-3518513.html QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: ...

  4. 转载:Hadoop排序工具用法小结

    本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...

  5. [No000010]Ruby 中一些百分号(%)的用法小结

    #Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...

  6. C++ typedef用法小结 (※不能不看※)

    C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...

  7. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  8. 1:CSS中一些@规则的用法小结 2: @media用法详解

    第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下     at-rule ...

  9. 英语语法最终珍藏版笔记- 21it 用法小结

    it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...

随机推荐

  1. HierarchyView的实现原理和Android设备无法使用HierarchyView的解决方法

    声明:由于本人一直用eng版的真机调试,所以此方法没有用过,记录在这里,有机会验证 ---------------------------------------------------------- ...

  2. 不支持关键字: “userid”。

    运行程序提示:不支持关键字: “userid”. 找了很久在一篇博客里面提示web.config数据库字符串链接出错.

  3. jquery 滑动动画

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <head> ...

  4. bzoj 2818: Gcd 歐拉函數

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1633  Solved: 724[Submit][Status] Descript ...

  5. 在python中使用zookeeper管理你的应用集群

    http://www.zlovezl.cn/articles/40/ 简介: Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些 ...

  6. C语言常用数学函数及其用法

    转自:http://blog.sina.com.cn/s/blog_8b5a0d0001011779.html 三角函数:(所有参数必须为弧度)  1.acos 函数申明:acos  (double ...

  7. 协定类型不具有 ServiceContractAttribute 特性

    协定类型 ZBMService.QueryHistoryData 不具有 ServiceContractAttribute 特性.若要定义有效协定,指定的类型(协定接口或服务类)必须具有 Servic ...

  8. [FJSC2014]异或之

    [题目描述] 给定n个非负整数A[1], A[2], ……, A[n]. 对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A[i] xor A[j],这样共有n ...

  9. lemon OA 下阶段工作安排

    lemon OA 下阶段工作安排 经验总结 lemon OA系统作为一个中型的java web系统,在架构上还是有着很好地可学习的地方.但是由于经验不足,过程比较迂回.如果真的有经验的话,应该可以做到 ...

  10. spring中context:property-placeholder/元素 转载

    spring中context:property-placeholder/元素  转载 1.有些参数在某些阶段中是常量 比如 :a.在开发阶段我们连接数据库时的连接url,username,passwo ...