很簡單,以下所示: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(); }