您的位置:首页 > 编程语言 > Qt开发

Qt读写XML文件

2014-10-22 08:07 423 查看
1 写XML : main.cpp

#include <QtCore>
#include <QDebug>
#include <QtXml>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //Write XML
    QDomDocument document;
    //Make the root element
    QDomElement root =document.createElement("Books");
    //Add it to the documnet
    document.appendChild(root);
    //Add some elements
    for(int i =0;i<10;++i)
    {
        QDomElement book = document.createElement("Book");
        book.setAttribute("Name","My Book " +QString::number(i));
        book.setAttribute("ID",QString::number(i));
        root.appendChild(book);
        for(int h=0;h<10;h++)
        {
            QDomElement chapter = document.createElement("Chapter");
            chapter.setAttribute("Name","My Chapter " +QString::number(i));
            chapter.setAttribute("ID",QString::number(i));
            book.appendChild(chapter);
        }
    }
    QFile file("MyXml.xml");
    if(!file.open(QIODevice::WriteOnly |QIODevice::Text))
    {
        qDebug("Failed to open file for writting!");
        return -1;
    }
    else
    {
        QTextStream stream(&file);
        stream<<document.toString();
        file.close();
        qDebug("Finished");
    }
    return a.exec();
}


2 读XML:main.cpp

#include <QtCore>
#include <QtXml>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QDomDocument document;
    //Load the file
    QFile file("MyXml.xml");
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug()<<"Failed to open file!";
        return -1;
    }
    else
    {
        if(document.setContent(&file))
        {
            qDebug("Failed to load document");
            return -1;
        }
        file.close();
    }
    QDomElement doc_elem = document.documentElement();
    QDomNode n = doc_elem.firstChild();
	while(!n.isNull())
	{
		QDomElement elem = n.toElement(); // 将节点转换为元素
		if(!elem.isNull())
		{
			if(elem.attribute("name") == "iStonsoft Image Converter")
			{
				QString str = elem.attribute("version");// str 为 version对应的内容
			}
		}
		n = n.nextSibling();
	}	

    return a.exec();
}


3 以上代码适合读取的XML文件类型




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: