从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,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(); }原文链接:https://www.f2er.com/xml/300110.html