を戻します戻り値としてptreeを渡す方法はわかりません。可能であれば、最初にコピーすることなくptreeを返す例は見つかりませんでした。これを望むためどのように私は、しかし、私はブースト:: property_tree :: ptreeでの最後の項目を見つけ、私は最後の項目を見つけたコードを以下のいる</p> <p>ptreeでとしてそれを返す関数を作りたい最後のブーストptreeでアイテム
理由は、もう少しそれを明確にしようとする新しい値
BOOST_FOREACH(boost::property_tree::ptree::value_type const&rowPair, pt.get_child(""))
{
cout << rowPair.first << ": " << endl;
BOOST_REVERSE_FOREACH(boost::property_tree::ptree::value_type const& itemPair, rowPair.second)
{
std::cout << "\t" << itemPair.first << " ";
BOOST_FOREACH(boost::property_tree::ptree::value_type const& node, itemPair.second)
{
std::cout << node.second.get_value<std::string>() << " ";
}
std::cout << std::endl;
//TODO: return itemPair
break;
}
std::cout << std::endl;
}
と最後の項目の更新を処理できるようにすることです。 次のコード行は、それがアイテムに、それは新しい挿入する複数の「アイテム」と複数の「アイテム」を持っているがあれば、Items.itemは一つだけのアイテムを持っている場合、これは完璧に動作し、既存のエントリ
pt.insert(pt.get_child("item").end(), subpt.front());
に追加しますそのために、最初のItems.item
<xml>
<listOfItems>
<Items>
<item>
</item>
<item>
... inserts new sub pt here
</item>
</Items>
<Items>
<item>
</item>
<item>
... Should insert new sub pt here
</item>
</Items>
</listOfItems>
のエントリは、私が何とか良くINSERT文を作るか、私に正しいアイテムを与えることができる関数を作成し、それ
あなたは "それをコピーする" とはどういう意味ですか?見つけた商品を単に返品するとどうなりますか? – UnholySheep
私はこのコードが別の関数であると想定しています(そうでなければ*何かを返すにはあまり意味がないでしょう)?次に関数に引数として 'pt'を渡しますか?もしそうなら、何をするだけであなたを止めるのですか? 'return itemPair'? –
はい、明らかにそれは別の機能になることです。 私は当初このようなものを持っていました:pt.insert(pt.get_child( "Items.item")。end()、subpt.front()); - これはItems.itemを新しいサブプットを追加して更新しますが、複数の項目エントリがあった場合は、常にItemsリストの最初の項目に追加されるため、最後のエントリを見つけてポイントする必要があります – serup