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

Qt中xml元素的遍历

2013-09-09 10:53 120 查看
#include <QtCore/QCoreApplication>
#include <QDomDocument>
#include <QFile>
#include <QDebug>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QDomDocument doc;
QFile file("H:\\Soft\\QQ\\AuI18N\\2052\\StringBundle.xml");
QString errorStr;
int errorLine;
int errorCol;

if (!file.open(QIODevice::ReadOnly))
return 0;

if(!doc.setContent(&file,true,&errorStr,
&errorLine,&errorCol))
{
file.close();
qDebug()<<"errorStr:"<<errorStr<<"\n";
qDebug()<<"errorLine:"<<errorLine<<
"  errorCol:"<<errorCol;
return 0;
}

file.close();

QDomElement root = doc.documentElement();
QDomElement ele = root.firstChildElement();

int i = 1;
for(;!ele.isNull();ele = ele.nextSiblingElement()){
if(ele.hasAttribute("id"))
{
qDebug()<<i<<": "<<ele.attributeNode("id").value();
i++;
}
}
return a.exec();
}

在Qt中用QDomDucument 遍历xml文件中的String元素的“id”属性。

xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<StringBundle version="1.0">
<String id="IDS_ACT_STARTING_DOWNLOAD_MODULE_UPDATE_PACK">
开始下载模块升级包
</String>
<String id="IDS_PPModuleSelect_SelectPkg">
请选择要安装的更新
</String>
<String id="IDS_ERR_QUERYING_MODULE_UPDATE_LIST">
网络错误,查询可用更新失败。
</String>
<String id="IDS_PPModuleSelect_Title">
更新内容:
</String>
<String id="IDS_PPModuleSelect_Detail">
详细信息:
</String>
<String id="IDS_PPModuleSelect_DownloadSize">
下载大小:
</String>
<String id="IDS_ERR_UNZIPPING_UPDATE_PACK">
升级包错误,升级失败。下次升级会自动尝试修复此问题,如此错误反复出现,请联系客服。
</String>
<String id="IDS_ERR_UPDATE_PACK_DAMAGED">
升级包损坏,升级失败。下次升级会自动尝试修复此问题,如此错误反复出现,请联系客服。
</String>
<String id="IDS_PPModuleSelect_DownloadTime">
估计耗时:
</String>
<String id="IDS_PPModeSelect_Welcome">
欢迎使用在线升级。
</String>
<String id="IDS_ERR_NETWORK_BUSY">
网络繁忙,请稍后再试……
</String>
<String id="IDS_PPWELCOME_NetPrompt">
使用internet连接进行在线升级操作
</String>
<String id="IDS_PPWELCOME_BTNNetSetup">
高级网络设置
</String>
</StringBundle>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: