main.cpp中
#include <QCoreApplication>
#include <QFile>
#include<QDebug>
#include<QXmlStreamWriter>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile file("./testWrite.xml");
if(!file.open(QFile::WriteOnly|QFile::Text))
{ qDebug()<<"打开文件失败";}
QXmlStreamWriter stream(&file);
stream.setCodec(QTextCodec::codecForName("utf-8"));
stream.setAutoFormatting(true);//开启自动格式化
stream.writeStartDocument(); //从文档开始
stream.writeStartElement("teachers");
stream.writeStartElement("teacher");
stream.writeAttribute("id","01");
stream.writeTextElement("name","老王");
stream.writeTextElement("book","金瓶梅");
stream.writeStartElement("teacher");
stream.writeAttribute("id","02");
stream.writeTextElement("name","老是");
stream.writeTextElement("book","金瓶梅");
stream.writeStartElement("teacher");
stream.writeAttribute("id","03");
stream.writeTextElement("name","老六");
stream.writeTextElement("book","金瓶梅");
stream.writeEndElement();
stream.writeEndDocument();
file.close();
qDebug()<<"存入文件成功";
QFile file1("./testWrite.xml");
if(!file1.open(QFile::ReadOnly|QFile::Text))
{ qDebug()<<"打开文件失败";}
QXmlStreamReader reader;
reader.setDevice(&file1);
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"))&&(reader.attributes().hasAttribute("time")))
qDebug() << reader.attributes().value("id")<<" "<<reader.attributes().value("time");
}
if(type==QXmlStreamReader::EndElement)
qDebug() << "</" << reader.name() << ">";
if (type == QXmlStreamReader::Characters && !reader.isWhitespace())//会字符空白
qDebug() << reader.text();
// 如果读取过程中出现错误,那么输出错误信息
if (reader.hasError()) {
qDebug() << "error: " << reader.errorString();
}
}
file1.close();
return a.exec();
}