//xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<item attr1="0" attr2="1"/>
<itemList>
<item1>0</item1>
<item2>1</item2>
</itemList>
</Root>
//qt代码
//QtReadWriteXML.h 头文件
#ifndef QT_READWRITEXML_H
#define QT_READWRITEXML_H
#include <QtGui>
class Qt_readWriteXML : public QWidget
{
Q_OBJECT
public:
Qt_readWriteXML(QWidget *parent = 0, Qt::WFlags flags = 0);
~Qt_readWriteXML();
private slots:
void readXml();
void writeXml();
};
#endif
//QtReadWriteXML.cpp原文件
#include "qt_readwritexml.h"
#include <QFile>
#include <QDomDocument>
#include <QXmlStreamWriter>
Qt_readWriteXML::Qt_readWriteXML(QWidget *parent, Qt::WFlags flags): QWidget(parent, flags)
{
QVBoxLayout *lay=new QVBoxLayout();
setLayout(lay);
QPushButton *b1=new QPushButton("write");
QPushButton *b2=new QPushButton("read");
lay->addWidget(b1);
lay->addWidget(b2);
connect(b1,SIGNAL(clicked()),this,SLOT(writeXml()));
connect(b2,SIGNAL(clicked()),this,SLOT(readXml()));
}
Qt_readWriteXML::~Qt_readWriteXML()
{
}
//读xml文件
void Qt_readWriteXML::readXml()
{
QString filePath="e:/test.xml";
QFile file(filePath);
if (file.open(QFile::ReadOnly|QFile::Text))
{
QDomDocument dom;
if (dom.setContent(&file))
{
QDomElement rootDom=dom.documentElement();
if (rootDom.tagName()=="Root")
{
QDomNode subNode=rootDom.firstChild();
while(!subNode.isNull())
{
QDomElement subElement=subNode.toElement();
if (subElement.tagName()=="item")
{
for (int i=0;i<subElement.attributes().count();i++)
{
qDebug()<<subElement.attributes().item(i).nodeName();//attr1,attr2
qDebug()<<subElement.attributes().item(i).nodeValue().toInt();//0,1
}
}
else if (subElement.tagName()=="itemList")
{
QDomNode childNode=subElement.firstChild();
while(!childNode.isNull())
{
qDebug()<<childNode.toElement().nodeName();//item1,item2
qDebug()<<childNode.toElement().text();//0,1
childNode=childNode.nextSibling();
}
}
subNode=subNode.nextSibling();
}
}
}
file.close();
}
}
//写xml文件
void Qt_readWriteXML::writeXml()
{
QString filePath="e:/test.xml";
QFile file(filePath);
if (file.open(QFile::WriteOnly|QFile::Text))
{
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("Root");
xmlWriter.writeStartElement("item");
xmlWriter.writeAttribute("attr1", "0");
xmlWriter.writeAttribute("attr2", "1");
xmlWriter.writeEndElement();
xmlWriter.writeStartElement("itemList");
xmlWriter.writeTextElement("item1","0");
xmlWriter.writeTextElement("item2","1");
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
}