Boost的属性树:删除一个知道其路径的孩子

Posted

技术标签:

【中文标题】Boost的属性树:删除一个知道其路径的孩子【英文标题】:Boost's property tree: deleting a child knowing its path 【发布时间】:2015-03-05 15:15:24 【问题描述】:

是否可以从路径已知的属性树中轻松删除子项(及其最终的子项)?

以下

auto child = ptree.get_child(path);
child.clear();

实际上并没有删除孩子,而只是删除了它的内容。

erase 成员函数采用迭代器或键。我不知道有一种简单的方法可以找到与路径对应的迭代器,而不必遍历树。

可以通过在点字符处拆分路径并eraseing 其余部分来找到“根”子级。但是有没有更容易/更短的到达那里的方法?

【问题讨论】:

【参考方案1】:

你可以这样做:ptree.get_child("path.to").erase("child"); 请注意,这会删除路径“path.to”及其子子级中名为“child”的所有节点。

【讨论】:

以上是关于Boost的属性树:删除一个知道其路径的孩子的主要内容,如果未能解决你的问题,请参考以下文章

提升属性树获取第一个元素

哈夫曼树

使用 INI 文件提升属性树

Boost 属性树:删除嵌套节点

Boost属性树xml解析No such node()

c语言中如何获取树中所有叶子节点的路径