首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Boost和xml解析

Boost和xml解析
EN

Stack Overflow用户
提问于 2017-11-30 16:20:19
回答 2查看 1.5K关注 0票数 2

我有以下xml数据,我想通过boost xml解析器进行解析。

<?xml version="1.0" encoding="UTF-8"?>
<applications>
    <application>
            <id>1</id>
            <platform>linux-x64</platform>
            <version>2.4</version>
    </application>
    <application>
            <id>2</id>
            <platform>windows</platform>
            <version>2.5</version>
    </application>
    <application>
            <id>3</id>
            <platform>linux</platform>
            <version>2.6</version>
    </application>
</applications>

我写了下面的boost代码,但我只读了“应用程序”的第一个孩子,不能读其他两个孩子。每次内循环获取第一个孩子的数据。

boost::property_tree::ptree pt;
boost::property_tree::read_xml(sModel, pt); // sModel is filename which contains above xml data

BOOST_FOREACH(boost::property_tree::ptree::value_type &v, pt.get_child("applications"))
{
    std::string key = v.first.data();       
    std::string Id, platform, version;

    if (key == std::string("application"))
    {
        BOOST_FOREACH(boost::property_tree::ptree::value_type &v_, pt.get_child("applications.application"))
        {
            std::string app_key = v_.first.data();
            std::string app_value = v_.second.data();

            if (app_key == std::string("id"))
                pkgId = app_value;
            else if (app_key == std::string("platform"))
                platform = app_value;
            else if (app_key == std::string("version"))
                version = app_value;
        }
    }
}

在这里,每次我得到的平台是"linux-x64“。有人可以指导如何通过这个boost xml读取所有的孩子吗?

提前谢谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47568808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档