2011-07-05 66 views
0

我有以下YAML:Ruby中的YAML解析:如何獲取某種類型的元素的數組?

- name: List of monkeys 
- author: Nicolas Raoul 
- version: 1 
- monkey: Chee-Chee 
- monkey: Curious George 
- monkey: Mojo 

如何讓猴子在Ruby中的數組?元數據參數(名稱,作者...)的數量是可變的。

這將返回類似[Chee-Chee, Curious George, Mojo]

注:我不想創建一個包含所有的猴子作爲子項的monkeys節點,因爲有很多猴子,我想保持文件非常簡單。

回答

1

那麼你的YAML看起來有點瘋狂:這些行中的每一行都是包含一個元素的hash。不過,如果你堅持了下來,像這樣會讓你的猴子名稱的數組:

require 'yaml' 

data = YAML.load(DATA.read) 
p data.map { |row| row['monkey'] }.compact 

__END__ 
- name: List of monkeys 
- author: Nicolas Raoul 
- version: 1 
- monkey: Chee-Chee 
- monkey: Curious George 
- monkey: Mojo 

很明顯,你可以從任何地方加載YAML,它並沒有在你的數據塊。

+0

我是YAML的新手,歡迎任何建議:-)該列表將由客戶編輯,因此它必須簡單。注意:每隻猴子都有幾個屬性,我沒有爲了簡潔而寫在這裏。 –

+0

您的回答對我提出的問題有效。我的假設,我可以忽略猴子屬性的簡短證明是錯誤的,所以我創建了一個新的問題:http://stackoverflow.com/questions/6578370 –

相關問題