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

    [cpp] view plaincopy
     
    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. }  
  • 相关阅读:
    Echars折线配置详解
    Echarts中太阳图(Sunburst)的实例
    MongoDB shell 介绍
    js深度克隆对象
    js将有父子关系的数据转换成树形结构数据
    使用Mongoose类库实现简单的增删改查
    MongoDB可视化工具--Robo 3T 使用教程
    go语言之进阶篇并行和并发的区别与go语言并发优势
    go语言之进阶篇拷贝文件案例
    go语言之进阶篇借助bufio实现按行读取内容
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4087677.html
Copyright © 2020-2023  润新知