我有以下 XML 文件:
<xml 版本="1.0" 编码="utf-8"?>
<数据>
<参数1>1</参数1>
</数据>
我想向 Data 节点添加一个新节点:Parameter2="2"。此代码不起作用,保存的文件仍然只包含一个参数:
boost::property_tree::ptree 树;
boost::property_tree::ptree 数据树;
read_xml("test.xml", 树);
dataTree = tree.get_child("数据");
dataTree.put("Parameter2", "2");
boost::property_tree::xml_writer_settings w(' ', 4);
write_xml("test.xml", 树, std::locale(), w);
如果我在 dataTree.put 之后添加这两行,我会得到正确的结果:
树.clear();
tree.add_child("数据", dataTree);
我不喜欢这个解决方案,因为它会给更复杂的树结构带来问题。是否可以在不删除/添加子节点的情况下更新属性树?