Ruby中的YAML解析:如何只获取特定类型的元素?
我有以下YAML:Ruby中的YAML解析:如何只获取特定类型的元素?,ruby,yaml,Ruby,Yaml,我有以下YAML: - name: List of monkeys - author: Nicolas Raoul - version: 2 - monkey: - name: Chee-Chee - age: 2 - monkey: - name: Curious George - age: 6 - food: bananas - monkey: - name: Mojo - food: peanuts 在Ruby中,如何获得猴子? 序言名称、作者
- name: List of monkeys
- author: Nicolas Raoul
- version: 2
- monkey:
- name: Chee-Chee
- age: 2
- monkey:
- name: Curious George
- age: 6
- food: bananas
- monkey:
- name: Mojo
- food: peanuts
在Ruby中,如何获得猴子?
序言名称、作者等中的元数据参数数。。。它是可变的
它将返回类似于:
[{"monkey"=>[{"name"=>"Chee-Chee"}, {"age"=>2}]}, {"monkey"=>[{"name"=>"Curious George"}, {"age"=>6}, {"food"=>"bananas"}]}, {"monkey"=>[{"name"=>"Mojo"}, {"food"=>"peanuts"}]}]
在XML/XPath中,我只需编写/monkey,但是YAML/Ruby的语法是什么
注意:我不想创建一个包含所有猴子作为子项的monkeys节点,因为有很多猴子,客户端将编辑文件以添加更多,所以我希望文件非常简单。我是YAML新手,因此可能需要一个更好的组织,但简洁是最重要的,特别是我不想增加子级别的数量。您可以使用枚举器的选择方法仅返回集合中的猴子。如果在名为youryaml的变量中有已解析的YAML对象,则此代码将返回所需的内容:
你的_yaml.select{| item | item['monkey']}
您可能不需要在第二级中使用连字符。如果你改变这个
- monkey:
- name: Chee-Chee
- age: 2
为此:
- monkey:
name: Chee-Chee
age: 2
猴子的属性将是散列,而不是散列数组。我认为这对您更有用。您可以使用枚举器的select方法仅返回集合中的猴子。如果在名为youryaml的变量中有已解析的YAML对象,则此代码将返回所需的内容:
你的_yaml.select{| item | item['monkey']}
您可能不需要在第二级中使用连字符。如果你改变这个
- monkey:
- name: Chee-Chee
- age: 2
为此:
- monkey:
name: Chee-Chee
age: 2
猴子的属性将是散列,而不是散列数组。我想这对你更有用