Qt中xml元素的遍历

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

相关文章

引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而产生的。具体...
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章...
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章...
http://blog.jobbole.com/79252/ 引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满...
(点击上方公众号,可快速关注) 公众号:smart_android 作者:耿广龙|loonggg 点击“阅读原文”,可查看...
一、xml与xslt 相信所有人对xml都不陌生,其被广泛的应用于数据数据传输、保存与序列化中,是一种极为强...