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 plain copy
 
  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. }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM