Qt 读写xml文件
来源:互联网 发布:域名商 编辑:程序博客网 时间:2024/05/21 22:48
//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();
}
}
- Qt 读写XML文件
- QT 读写Xml文件
- Qt读写XML文件
- qt读写xml文件
- Qt 读写xml文件
- QT XML文件的读写
- Qt读写xml文件实例
- QT QDomDocument 读写XML文件
- QT读写xml文件示例
- Qt中读写xml文件
- Qt DomDoucment方式读写 xml文件
- Qt使用流方式 读写xml文件
- QT DOM的方式读写Xml文件
- Qt:QXMLStreamReader、QXMLStreamWriter,读写XML文件实例
- Qt:用Dom方式读写xml文件
- QT读写XML文件之DOM方式解析XML
- Qt Write and Read XML File 读写XML文件
- qt DOM xml 读写
- 【leetcode c++】28 Implement strStr()
- 开始学习C++心得实例(6)
- Shell脚本[运算表达式,条件控制语句]
- Repeater篇
- sgu140: Integer Sequences
- Qt 读写xml文件
- Java io流之File
- android json解析及简单例子
- C/C++ 内置类型转换注意点
- 51Nod 1103 N的倍数
- Pots
- codeforces #309 553C C. Love Triangles(dfs+ 图论)
- swift初体验
- iOS学习笔记 数据库操作(使用FMDB)