#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>
这篇博客介绍了如何在Qt环境中利用QDomDocument类有效地遍历XML文件中的String元素,并提取其'id'属性。通过示例代码详细阐述了这一过程。
5087

被折叠的 条评论
为什么被折叠?



