gpt4 book ai didi

c++ - 为 C++ boost XML 解析器

转载 作者:行者123 更新时间:2023-11-30 05:11:55 24 4
gpt4 key购买 nike

我刚开始使用 boost c++ 库,想用它来解析 xml 文档,但我在弄清楚逻辑时遇到了麻烦。

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

如果我想访问每个 function 标签的 Argument 标签,我应该怎么做?我能够按如下方式访问 function 标签。

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

最佳答案

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;
}
}

关于c++ - 为 C++ boost XML 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44812126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com