Qt XMLストリームの使用

2217 ワード

簡単です.以下に示します.
#include 
#include 
#include 
#include 
#include 

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()<< "";
            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();
}