zoukankan      html  css  js  c++  java
  • Qt中利用QDomDocument读写xml小Demo

    1.写入xml文档中

    bool protProjectInfo::SaveXml() 
    {
    	//QFile file(mProjectInfoPath.filePath("projectconfig.xml"));    
         QFile file("c:/projectconfig.xml");
    	if(! file.open(QIODevice::WriteOnly)) {
    		//logger()->error("open file fail '%1'.",mProjectInfoPath.filePath("projectconfig.xml"));
    		file.close();
    		return false;
    	}
    	QDomDocument projectinfodom;
    	projectinfodom.appendChild( projectinfodom.createProcessingInstruction("xml","version="1.0" encoding="UTF-8""));
    	QDomElement projectelement = projectinfodom.createElement("Project");
    	projectinfodom.appendChild(projectelement);
    	
    	QDomElement projectnameelement = projectinfodom.createElement("ProjectName");
    	projectnameelement.appendChild(projectinfodom.createTextNode(mProjectName));
    	projectelement.appendChild(projectnameelement);
    
    	QDomElement createtimeelement = projectinfodom.createElement("CreateTime");
    	createtimeelement.appendChild(projectinfodom.createTextNode(mCreateTime.toString("yyyy/MM/dd hh:mm:ss")));
    	projectelement.appendChild(createtimeelement);
    
    	QTextStream stream(&file);
    	projectinfodom.save(stream,4);
    	file.close();
    	return true;
    }
    

     2.读xml文件

    bool protProjectInfo::LoadXml()
    {
    	//QFile file(mProjectInfoPath.filePath("projectconfig.xml"));     
        QFile file("c:/projectconfig.xml"); 
    	if(! file.open(QIODevice::ReadOnly)) {
    		//logger()->error("Open '%1' failed,'%2'.",mProjectInfoPath.filePath("projectconfig.xml"),file.errorString());	
    		return false;
    	}
    	QDomDocument doc;
    	if (! doc.setContent(&file,true)) {
    		//logger()->error("QDomDocument setContent fail.");
    		file.close();
    		return false;
    	}
    	file.close();
    	QDomElement docrootelement = doc.documentElement();
    	QDomElement projectnameelement = docrootelement.firstChildElement("ProjectName");
    	QDomElement createtimeelement = docrootelement.firstChildElement("CreateTime");
    	
    	mProjectName = projectnameelement.text();
    	mCreateTime =  QDateTime::fromString(createtimeelement.text(),"yyyy/MM/dd hh:mm:ss");
    	return true;
    }
    

     3.注意事项

        
        1.protProjectInfo 是个简单类
    	    QDir mProjectInfoPath;
    
             QString mProjectName;
    
             QDateTime mCreateTime;
        2.xml格式如下
        <?xml version="1.0" encoding="UTF-8"?>
            <Project>
                <ProjectName>project09</ProjectName>
                <CreateTime>2015/07/22 16:22:05</CreateTime>
            </Project>
    
     QFile file("c:/projectconfig.xml");
  • 相关阅读:
    实现一个简易版的react
    浅学virtualDom和diff算法
    148. 排序链表 归并排序 | 快速排序
    OC中的NSDictionary和NSMutableDictionary
    OC中的block
    OC中的category&Extension
    OC中判断方法是否实现
    OC的分组导航标记
    OC中程序的内存分布&类加载
    OC中的@property和@synthesize
  • 原文地址:https://www.cnblogs.com/L-Lune/p/4670659.html
Copyright © 2011-2022 走看看