Qt使用XML流

很簡單,以下所示:spa

#include <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();
*/

//寫入
    QFile file("../myxmlstream/my2.xml");
    if (!file.open(QFile::WriteOnly | QFile::Text)){
        qDebug()<< "Error: cannot open file";
        return 1;
    }

    QXmlStreamWriter writer(&file);
    writer.setAutoFormatting(true); //會自動換行和縮進
    writer.writeStartDocument();    //會自動添加XML說明
    writer.writeStartElement("bookmark");
    writer.writeAttribute("href", "http://www.qt.io/");
    writer.writeTextElement("title", "Qt Home");
    writer.writeEndElement();
    writer.writeEndDocument();
    file.close();
    qDebug()<< "write finished";


    return a.exec();
}
相關文章
相關標籤/搜索