如何在 Ruby 中遍历 YAML 树中的所有节点?
我正在加载任意 YAML 文档,并且想要遍历树中的每个节点。 我事先不知道树是如何嵌套的,所以我不能只使用简单的each语句来遍历所有节点。
这是我加载文档的方式:
tree = File.open( "#{RAILS_ROOT}/config/locales/es.yml" ){ |yf| YAML::load (yf)}
I am loading an arbitrary YAML document, and want to walk every node in the tree. I don't know how nested the tree is beforehand, so I can't just use a simple each statement to walk all the nodes.
Here is how I'm loading the document:
tree = File.open( "#{RAILS_ROOT}/config/locales/es.yml" ){ |yf| YAML::load (yf)}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下是如何解析 YAML 树结构并作用于每个节点、分支和叶子。 它还为您提供所需的每个节点的父节点,例如,从 YAML 文件填充数据库树结构时。 这是对 @sepp2k 优秀答案的一个小小的补充:
Here is how to parse a YAML tree structure and to act on each node, branch and leaf. It also gives you parent of each node that you need, for example, when populating a database tree structure from your YAML file. It is a small addition to @sepp2k excellent answer:
编辑:
请注意,这只会产生叶节点。 这个问题不太清楚到底想要什么。
Edit:
Note that this only yields the leaf nodes. The question wasn't very clear as to what was wanted exactly.