在 yaml-cpp 中是否可以获取文档中的顶级键名
In yaml-cpp is it possible to get the top-level key name in a document
给定以下 sample.yaml 文件:
Foo:
id: 10
name: "bob"
使用yaml-cpp,如何获取键名'Foo'?
给定代码:
YAML::Node doc = YAML::LoadFile("sample.yaml");
cout << "doc.Type(): " << doc.Type() << "\n";
cout << "doc.size(): " << doc.size() << "\n";
cout << "doc[Foo][id]: " << doc["Foo"]["id"] << "\n";
Type() 是预期的 4(地图)(Foo 是地图)。
size() 按预期为 1(Foo 是文档中的唯一项目)。
doc[Foo][id] 为预期的 10。
但我似乎无法弄清楚如何从文档的一个节点中找到 "Foo"。遍历 doc 生成单个节点,但它的大部分操作都会抛出异常。
for (const auto& kv : doc) {
std::cout << kv.first.as<std::string>() << "\n"; // prints Foo
const YAML::Node& value = kv.second; // the value
}
给定以下 sample.yaml 文件:
Foo:
id: 10
name: "bob"
使用yaml-cpp,如何获取键名'Foo'?
给定代码:
YAML::Node doc = YAML::LoadFile("sample.yaml");
cout << "doc.Type(): " << doc.Type() << "\n";
cout << "doc.size(): " << doc.size() << "\n";
cout << "doc[Foo][id]: " << doc["Foo"]["id"] << "\n";
Type() 是预期的 4(地图)(Foo 是地图)。
size() 按预期为 1(Foo 是文档中的唯一项目)。
doc[Foo][id] 为预期的 10。
但我似乎无法弄清楚如何从文档的一个节点中找到 "Foo"。遍历 doc 生成单个节点,但它的大部分操作都会抛出异常。
for (const auto& kv : doc) {
std::cout << kv.first.as<std::string>() << "\n"; // prints Foo
const YAML::Node& value = kv.second; // the value
}