boost 解析XML文件,获取子节点的属性值

考虑以下的Wikipedia API返回的XML查询值信息

<api>
  <query>
    <pages>
      <page pageid="135739" ns="0" title="首页">
        <links>
          <pl ns="0" title="MediaWiki"/>
          <pl ns="0" title="中国大陆"/>
          <pl ns="0" title="中文维基百科"/>
          <pl ns="0" title="副檔名"/>
          <pl ns="0" title="域名"/>
          <pl ns="0" title="文件"/>
          <pl ns="0" title="文档"/>
          <pl ns="0" title="服务器"/>
          <pl ns="0" title="浏览器"/>
          <pl ns="0" title="網頁瀏覽器"/>
          <pl ns="0" title="网站"/>
          <pl ns="0" title="网络浏览器"/>
          <pl ns="0" title="网页"/>
          <pl ns="0" title="電腦"/>
        </links>
      </page>
    </pages>
  </query>
</api>

假如我们需要获取api.query.pages.page.links中各个子节点pl的title属性值,可以通过以下方法


		read_xml("respond.xml",pt);
		BOOST_AUTO(child,pt.get_child("api.query.pages.page.links"));
		for(BOOST_AUTO(pos,child.begin());pos!=child.end();++pos)
		{
			cout<<pos->second.get<string>("<xmlattr>.title")<<endl;
			++cnt;
		}


你可能感兴趣的:(xml,api,浏览器,服务器,query,文档)