QT QDomDocument 读写XML文件

前端之家收集整理的这篇文章主要介绍了QT QDomDocument 读写XML文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
因为需要读取配置文件,我的配置文件采用xml;因此编写了使用qt读取xml文件内容代码,xml文件
如下:
    @H_301_8@ <?xmlversion="1.0"encoding"UTF-8"?>
    @H_301_8@ <configuration>
    @H_301_8@ <server<item key"serverip"value"222.88.1.146"/"serverport"value"5000"/server/configuration>
为了读取xml,我编写ReadConfig类代码如下:
ReadConfig.h文件内容如下

**
@H_301_8@ *
@H_301_8@ *文件:ReadConfig.h
@H_301_8@ *文件摘要:读取系统配置文件
@H_301_8@ *作者:程晓鹏
@H_301_8@ *文件创建时间:2012/02/23 09:59:36
@H_301_8@ /
@H_301_8@
@H_301_8@ #ifndef READCONFIG_H
@H_301_8@ #define READCONFIG_H
@H_301_8@
@H_301_8@ #include<QString>
@H_301_8@ #include<QFile<QDomDocument>
@H_301_8@
@H_301_8@
@H_301_8@ *读取配置文件
@H_301_8@ /
@H_301_8@ classReadConfig{
@H_301_8@ public:
@H_301_8@
@H_301_8@ *构造函数
@H_301_8@ /
@H_301_8@ ReadConfig();
@H_301_8@
@H_301_8@ *析构函数
@H_301_8@ ~ReadConfig*获取配置文件中的值
@H_301_8@ *@param key 配置的键
@H_301_8@ *@param type 类型标签
@H_301_8@ *@return 配置项对应的值
@H_301_8@ /
@H_301_8@ QString getValueconstQString&key,&type"server"private:
@H_301_8@ QFile*localfile;
@H_301_8@ QDomDocument*dom;
@H_301_8@ };
@H_301_8@
@H_301_8@ #endif
ReadConfig.cpp内容如下:
.cpp
@H_301_8@ .h的实现文件
@H_301_8@ /23 10:07:05
@H_301_8@ /
@H_301_8@
@H_301_8@ #include"ReadConfig.h"
@H_301_8@
@H_301_8@ ReadConfig:)
@H_301_8@ {
@H_301_8@ QString strfilename=QString("p2p.config";
@H_301_8@ localfile=new QFile(strfilenameif!localfile->open(QFile:ReadOnly{
@H_301_8@ return}
@H_301_8@
@H_301_8@ dom=new QDomDocument!dom>setContent(localfile{
@H_301_8@ localfile>close;
@H_301_8@ return}
@H_301_8@ }
@H_301_8@
@H_301_8@ ReadConfig{
@H_301_8@ delete localfile=0;
@H_301_8@ delete dom;
@H_301_8@ dom}
@H_301_8@
@H_301_8@ QString ReadConfig:getValue{
@H_301_8@ QString result"";
@H_301_8@ QDomNodeList nodelist=dom>elementsByTagName(type;<读取类型节点集合forinti;i<nodelist.count+{
@H_301_8@ QDomNode node=nodelist.at(i;
@H_301_8@ QDomNodeList itemlist=node.childNodes<获取字节点集合intj;j<itemlist{
@H_301_8@ QDomNode mynode=itemlist(j(mynode.toElement.attribute"key"==key{<查找所需要的键值/
@H_301_8@ result=mynode"value";
@H_301_8@ break}
@H_301_8@
@H_301_8@ return result}
另外,因为采用Qt的xml模块,记得在你的项目pro文件添加对xml的引用
QT += xml

猜你在找的XML相关文章