添加父名称以提升 ptree

Posted

技术标签:

【中文标题】添加父名称以提升 ptree【英文标题】:Adding parent name to boost ptree 【发布时间】:2014-10-16 02:52:04 【问题描述】:

我有一个带节点的 boost ptree:

pt.put("a.b", 1.0);
pt.put("a.c", 2.0);
pt.put("b.g", 3.0);

我想提取具有“a.b”和“a.c”(但没有“b.g”)的树。当我使用 pt.get_child("a") 时,我得到一棵带有“b”和“c”的树。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

您所描述的已经有效。看到它Live On Coliru

如果你想过滤掉任何“非a”,只需

删除其他节点Live on Coliru

for (auto it = pt.begin(); it != pt.end();)

    if (it->first != "a")
        it = pt.erase(it);
    else
        ++it;

创建一棵新树Live on Coliru

ptree pt2;
pt2.add_child("a", pt.get_child("a"));

【讨论】:

以上是关于添加父名称以提升 ptree的主要内容,如果未能解决你的问题,请参考以下文章

Boost Property ptree:boost write_xml 在 xml 文件的子元素中添加 unicode 0x0 字符

如何手动创建具有 XML 属性的 boost ptree?

iOS 7 SpriteKit 游戏 - 保存加载游戏时出错:'尝试将 nil 节点添加到父节点:<SKNode> 名称:'(null)'

无法添加定义以提升构建

2指定父对象

递归添加子树以提升属性树