中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt Dom方式寫xml,以及保存到xml文件中

發布時間:2020-08-01 18:51:37 來源:網絡 閱讀:4130 作者:小溢 欄目:開發技術
#include <QString>
#include <QDebug>
#include <stdio.h>
#include <stdlib.h>
#include <QDomDocument>
#include <QtXml>

//XML DOM的方式
int main(int argc, char *argv[])
{
    QByteArray array;

    QDomDocument doc;
    QDomProcessingInstruction instruction;
    QDomText text;

    instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\"");

    doc.appendChild(instruction);                       //doc開頭加入instruction
    QDomElement root = doc.createElement("root");       //創建root節點
    QDomElement common = doc.createElement("common");   //創建節點common
    QDomElement meters = doc.createElement("meters");   //創建節點meters
    QDomElement meter = doc.createElement("meter");
    QDomElement function = doc.createElement("function");

    meters.setAttribute("total", "0");                  //設置屬性名字和值
    meter.setAttribute("id", "0001");
    meter.setAttribute("name", "0001");

    function.setAttribute("id", "01");                //
    function.setAttribute("error", "");

    meters.appendChild(meter);
    common.appendChild(meters);                         //將meters節點添加到common節點中
    doc.appendChild(root);                              //將root節點添加到doc
    root.appendChild(common);                           //將common節點添加到root節點中
    meter.appendChild(function);


    meters.setAttribute("total", "12");
    array = doc.toByteArray();

    printf("%s", array.data());

    //將xml保存到文件中
    QFile file("./why.xml");

    file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text);
    QTextStream out(&file);
    out.setCodec("UTF-8");
    doc.save(out, 4, QDomNode::EncodingFromTextStream);

    file.close();

    return 0;
}


輸出的xml內容為:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <common>
        <meters total="12">
            <meter id="0001" name="0001">
                <function error="" id="01"/>
            </meter>
        </meters>
    </common>
</root>


DOM方式,在內存中形成一個樹狀結構,在內存中可以實時的改變xml中的內容。但是耗內存較大,在xml內容較少時可以考慮使用。

而SAX,

QXmlStreamWriter的方式是順序的,只能按照順序去添加xml內容,無法回頭在改動xml的內容。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沽源县| 巴里| 台中市| 浮梁县| 秦皇岛市| 盐津县| 瓦房店市| 商丘市| 浦县| 永川市| 镇原县| 花莲市| 舒城县| 岳阳县| 上饶市| 绥宁县| 炉霍县| 封开县| 张家港市| 汕尾市| 禹城市| 远安县| 平顶山市| 衢州市| 攀枝花市| 乌兰浩特市| 凤冈县| 平山县| 普兰县| 山西省| 昭觉县| 和政县| 大丰市| 云霄县| 赫章县| 农安县| 东源县| 罗平县| 民权县| 常熟市| 乐陵市|