如何使用YAML cpp删除YAML文档的节点
我有一个YAML文件,如:如何使用YAML cpp删除YAML文档的节点,yaml,yaml-cpp,Yaml,Yaml Cpp,我有一个YAML文件,如: top: names: - name: john1 - name: john2 - name: john3 - name: john.doe 现在我必须删除top/names/name(john.doe)。我如何通过yaml cpp实现这一点?我的代码是: void deleteNode(string id) { YAML::Node config = YAML::LoadFile("doc.yaml"); for
top:
names:
- name: john1
- name: john2
- name: john3
- name: john.doe
现在我必须删除top/names/name(john.doe)。我如何通过yaml cpp实现这一点?我的代码是:
void deleteNode(string id)
{
YAML::Node config = YAML::LoadFile("doc.yaml");
for (int i = 0; i < config["top"]["names"].size(); i++)
{
if(config["top"]["names"][i]["name"].as<string>() == id)
{
config["top"]["names"].remove(config["top"]["names"][i]);
break;
}
}
}
deleteNode("john.doe");
void deleteNode(字符串id)
{
YAML::Node config=YAML::LoadFile(“doc.YAML”);
对于(int i=0;i
这似乎没有任何作用。因为您正在处理一个序列,所以必须按其索引删除一个节点:
void deleteNode(string id) {
YAML::Node config = YAML::LoadFile("doc.yaml");
YAML::Node names = config["top"]["names"];
for (int i = 0; i < names.size(); i++) {
if(names[i]["name"].as<string>() == id) {
names.remove(i);
break;
}
}
}
void deleteNode(字符串id){
YAML::Node config=YAML::LoadFile(“doc.YAML”);
YAML::Node names=config[“top”][“names”];
对于(int i=0;i
从序列中删除节点在libyaml cpp版本0.6.3中是固定的。如果您的版本比该版本旧,则应更新到该版本或更高版本