2010-12-06 3 views
1

私は私が有効であると信じてYAMLドキュメントを持っている(少なくともそれがXMLで 表現になります):Ruby:一意でない値を持つYAMLノードツリーをトラバースする方法は?

purchase_order: 
    date: 10/12/2010 
    vendor: 12345 
    item: 
    product: Tomatoes 
    quantity: 5 
    item: 
    product: Eggs 
    quantity: 2 

問題この上YAML.readを使用すると、Rubyでハッシュを生成することである のみ1つの購買発注明細が発生するのは、(自然に)一意でなければならないためです。

これ以外の方法で、YAMLドキュメントのノードをトラバースする方法はありますか?

答えて

2

問題は、項目の配列を説明するために正しいYAMLではないということです。

purchase_order: 
    date: 10/12/2010 
    vendor: 12345 
    items: 
    - quantity: 5 
    product: Tomatoes 
    - quantity: 2 
    product: Eggs 

だから私はあなたがYAMLとしてそれを解析することができるようになりますとは思わない:このだろう

おそらくYAMLのような構造を持つテキストファイルとして解析するのが最適な解決策です。

+0

ありがとう、私はこれをYAML.loadで解析しようとしましたが、それでも最初の項目は破棄されました。{"purchase_order" => {"date" => "10/12/2010"、 "vendor" => 12335、 "item" => {"quantity" => 2、 "product" => "Eggs"}}} – Martin

+1

私のためにこれを解析すると、{"purchase_order" => {"items" => [{"quantity" =>「製品」=>「トマト」}、{数量=> 2、「製品」=>「卵」}]、「日付」=>「10/12/2010」、「ベンダー」= > 12345}}。このYAMLにキー '項目'が含まれていないため、あなたが上にあるものをどのように得ることができたかわかりません – DanSingerman

関連する問題