2014-03-27 48 views
2

有没有办法获得节点的名称?例如:如何获取节点的名称?

Fruits: 
    - apple 
    - orange 
    - pear 

和C++:

YAML::Node fruit = parser["Fruits"]; 
cout << fruit.name() << endl; // should print "Fruits" 

是有什么样YAML ::节点::名称()?我在Node.h中看不到任何符合法案的东西。

如果没有,有什么建议以简单的方式修改代码来记录这些信息?

谢谢!

回答

1

你真正想要的是与地图中的值相关联的关键。你是对的,从一个值到它的关键没有链接,但是当你首先浏览节点时,你可以存储一个值。

如果所有的按键都是字符串键,那么每当你传递一个值一些功能,只需沿着字符串键通以及:

// Instead of: 
doSomething(node[key]); 

// Call: 
doSomething(key, node[key]); 
+1

这将是非常好的解析器有此信息嵌入在其中,以便用户代码不必跟踪错误捕获目的的层次结构。 – user3416593

+0

如果解析器没有保存这些信息,那么我必须在try/catch块中嵌入大多数YAML调用,并使用自己的错误处理或其他类似的入侵性错误陷阱。这给用户代码增加了很多开销。 – user3416593

+0

如果您认为这很重要,请在项目主页上提交功能请求。 –