2

XML ファイルから boost::property_tree::ptree をロードすると、次のようになります。

<bla>
   <foo>
       <element id="1" type="..." path="..."/>
       <element id="2" type="..." path="..."/>
       <element id="3" type="..." path="..."/>
       <otherelement/>
   </foo>
</bla>

それを read_xml を使用してプロパティ ツリーに読み込みます。ここで、タグに似た構造体を含むベクターを構築したいと考えていelementます。私は次のことができます:

BOOST_FOREACH(ptree::value_type& node, tree.get_child("bla.foo"))
{
    if (node.first == "element")
    {
                 ...
    }
}

これまでのところは問題ありませんが、要素内のデータを取得するのに問題があります。node.secondそれを含める必要がありますが、適切にアクセスするにはどうすればよいですか? node.second.get("xmlattr.type")働かないでください。

4

1 に答える 1

0

Google-Fuを正しい方法で使用した後、私はこのブログエントリで自分で答えを見つけました。正しい方法はnode.second.get<std::string>("<xmlattr>.type")です。xmlattrが間違っていることを除いて、コンパイラエラーを回避する方法はtemplate-syntaxを使用することです。

于 2011-11-14T12:25:37.797 に答える