這是一個比喬納森的(在其他方面是正確的)更部分的答案。
Yaml格式更像json而不是xml。 Yaml和json被設計成簡單表示大多數語言中普遍使用的基本但常用的數據結構(並且在腳本語言中普遍存在)。 Xml被設計爲一種標記語言和一個元數據規範,它具有大量的功能來促進不同文檔類型的混合。
Yaml中最基本和最常用的容器是序列和地圖。在編程語言中,序列通常被稱爲列表或數組,而映射通常被稱爲字典,哈希,hashmaps或數組(這很奇怪;我在看你PHP)。
所以,你的文檔就相當於YAML/JSON(有效期爲兩種類型)文件:
{"style": {"name": "Retro"}, "style": {"name": "Nouveau"}, "style": {"name": "Plain"}}
我你知道JSON或{}風格的地圖是相當容易,看看有什麼問題的任何語言是。書面方式這是紅寶石將是:
{"style" => ..., "style" => ..., "style" => ...}
最後一個鍵/值對覆蓋以前的,他們以前是不可能得到的。因此您需要更改文檔格式。
建議1周
喬納森·朱利安的建議是相當不錯的:
Retro:
type: style
Nouvaeu:
type: style
Plain:
type: style
建議2
我可能會使用類似:
styles:
Retro:
Nouvaeu:
Plain:
或者乾脆離開 「樣式」如果它被上下文所暗示,那麼它就完全沒有了。
建議3
又如即更像XML是使用!!對
!!pair
- style:
name: Retro
- style:
name: Nouveau
- style:
name: Plain
這更多或更少的(取決於解析器/語言),相當於該數據結構:
[("style", {"name": "Retro"}),
("style", {"name": "Nouveau"}),
("style", {"name": "Plain"})]
多感謝,我將嘗試這個:) – 2011-04-25 13:15:20