#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>