【问题标题】:How to get specific category names from yaml file?如何从 yaml 文件中获取特定的类别名称?
【发布时间】:2018-09-21 19:57:40
【问题描述】:

我正在使用 c++ 并且有一个如下所示的 yaml 文件:

Food:
  Apple:
    - Type: grannysmith
  BellPepper:
    - Type: Red
    - Type: Green
  Sandwich:
    - Type: Ham

我需要对其进行解析,以便获得一个仅列出食物名称的字符串向量:
output: "Apple", "BellPepper","Sandwich"

到目前为止,我的代码如下所示:

YAML::Node node = YAML::LoadFile(configYamlPath)["Food"];    
std::vector<std::string> items;    
for (YAML::Node n : node){    
    items.push_back(n.as<std::string>());    
}    

我将如何获得这些特定的密钥?

【问题讨论】:

    标签: c++ parsing yaml yaml-cpp


    【解决方案1】:

    这里,node 是一个 YAML 映射。当您遍历 YAML 映射时,您会返回 std::pair&lt;YAML::Node, YAML::Node&gt;,它们是键值对。所以,你想要:

    for (auto n : node) {
        YAML::Node &key = p.first;
        // Do something with the key here
    }
    

    (实际上,通过取消引用迭代器返回的值是继承自YAML::Nodestd::pair&lt;YAML::Node, YAML::Node&gt; 的类型,这就是您当前的代码不会编译失败的原因。但这是一个实现细节。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多