为c ++提升XML解析器

时间:2017-06-28 20:37:58

标签: c++ xml boost

我是一个使用boost c ++库的新手,想用它来解析一个xml文档,但我无法搞清楚逻辑。

$payer = new \PayPal\Api\Payer();
$payer->setPaymentMethod('paypal');

如果我想访问每个功能标记的参数标记,我应该如何处理它?我可以按如下方式访问功能标记。

<?xml version="1.0"?>
<GCC_XML version="0.9.0" cvs_revision="1.140">
  <Function id="_6" name="A" returns="_12" context="_1" location="f1:1" file="f1" line="1" mangled="_Z1Aif">
    <Argument name="a" type="_12" location="f1:1" file="f1" line="1"/>
    <Argument name="c" type="_13" location="f1:1" file="f1" line="1"/>
  </Function>
  <Function id="_7" name="B" returns="_14" context="_1" location="f1:7" file="f1" line="7" mangled="_Z1Bf">
    <Argument name="d" type="_13" location="f1:7" file="f1" line="7"/>
  </Function>
</GCC_XML>

1 个答案:

答案 0 :(得分:1)

Boost没有XML库。它有一个属性树库。

这样做完全相同:

BOOST_FOREACH( ptree::value_type const& a, v ) {
    if(a.first == "Argument") {
      cout << "Argument name : " << a.second.get_child("<xmlattr>.name").data() << endl;
      cout << "Argument type : " << a.second.get_child("<xmlattr>.type").data() << endl;
    }
}