QXML之QXmlStreamWriter 讀寫

來源:互聯網
上載者:User

代碼出自Qt creator 快速入門,代碼如下

從xml中讀取資料

main.cpp

#include <QtCore/QCoreApplication>#include <QFile>#include <QXmlStreamReader>#include <QXmlStreamWriter>#include <QDebug>int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);    QFile file("../myXmlStream/my.xml");    if (!file.open(QFile::ReadOnly | QFile::Text))    {        qDebug()<<"Error: cannot open file";        return 1;    }    QXmlStreamReader reader;    // 設定檔案,這時會將流設定為初始狀態    reader.setDevice(&file);    // 如果沒有讀到文檔結尾,而且沒有出現錯誤    while (!reader.atEnd()) {        // 讀取下一個記號,它返回記號的類型        QXmlStreamReader::TokenType type = reader.readNext();        // 下面便根據記號的類型來進行不同的輸出        if (type == QXmlStreamReader::StartDocument)            qDebug() << reader.documentEncoding() << reader.documentVersion();        if (type == QXmlStreamReader::StartElement) {            qDebug() << "<" << reader.name() << ">";            if (reader.attributes().hasAttribute("id"))                qDebug() << reader.attributes().value("id");        }        if (type == QXmlStreamReader::EndElement)            qDebug() << "</" << reader.name() << ">";        if (type == QXmlStreamReader::Characters && !reader.isWhitespace())            qDebug() << reader.text();    }    // 如果讀取過程中出現錯誤,那麼輸出錯誤資訊    if (reader.hasError()) {        qDebug() << "error: " << reader.errorString();    }    file.close();    return a.exec();}

 

寫入資料

main.cpp

#include <QtCore/QCoreApplication>#include <QFile>#include <QXmlStreamReader>#include <QXmlStreamWriter>#include <QDebug>int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);    QFile file("../myXmlStream/my2.xml");    if (!file.open(QFile::WriteOnly | QFile::Text))    {        qDebug() << "Error: cannot open file";        return 1;    }    QXmlStreamWriter stream(&file);    stream.setAutoFormatting(true);    stream.writeStartDocument();    stream.writeStartElement("bookmark");    stream.writeAttribute("href", "http://qt.nokia.com/");    stream.writeTextElement("title", "Qt Home");    stream.writeEndElement();    stream.writeEndDocument();    file.close();    qDebug() << "write finished!";    return a.exec();}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.