2010-12-06 5 views
1

J'ai un document YAML que je crois est valide (au moins il serait représentable en XML):Ruby: Comment parcourir l'arborescence des nœuds YAML avec des valeurs non uniques?

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

Le problème est que l'utilisation YAML.read sur ce produit une table de hachage en Ruby dans lequel seulement un article de commande d'achat se produit parce que (naturellement) il doit être unique. Comment peut-on traverser les nœuds dans un document YAML de cette manière?

Répondre

2

Le problème est que YAML n'est pas correct pour décrire un tableau d'éléments.

Ce serait ceci:

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

Je ne pense pas que vous serez en mesure d'analyser comme YAML. Peut-être l'analyser comme un fichier texte avec une structure de type YAML est la meilleure solution.

+0

Merci, j'ai essayé d'analyser cela avec YAML.load, mais il rejette toujours le premier élément, donc: {"purchase_order" => {"date" => "10/12/2010", "vendeur" => 12345, "item" => {"quantity" => 2, "product" => "Eggs"}}} – Martin

+1

L'analyser pour moi donne: {"purchase_order" => {"items" => [{"quantity" => 5, "product" => "Tomates"}, {"quantity" => 2, "product" => "Oeufs"}], "date" => "10/12/2010", "vendeur" = > 12345}}. Je ne vois pas comment vous auriez pu obtenir ce que vous avez ci-dessus car ce YAML ne contient aucun élément clé – DanSingerman

Questions connexes