yaml 的意思其實是:"yet another markup language"(仍是一種置標語言)的縮寫。
yaml的語法和其他高階語言類似,並且可以簡單表達清單、雜湊表,標量等資料形態、。
儘管它比較適合用來表達階層式(hierarchical model)的資料結構,不過也有精緻的語法可以表示關聯性(relational model)的資料。
由於yaml使用空白字元和分行來分隔資料,使的他特別適合用 grep、python、perl、ruby 操作。
其讓人最容易上手的特色是巧妙避開各種封閉符號,如:引號、各種括號等,這些符號在巢狀結構中會變得複雜而難以辨認。
資料結構可以用類似大綱的縮排方式呈現,結構通過 縮排
來表示,連續的專案通過減號「-」
來表示,map 結構裡面的 key/value 對用冒號「:」來分隔。樣例如下:
house:
family:
name: doe
parents:
- john
- jane
children:
- paul
- mark
- simone
address:
number: 34
street: main street
city: nowheretown
zipcode: 12345
注意:
字串不一定要用雙引號標識;
在縮排中空白字元的數目並不是非常重要,只要相同階層的元素左側對齊就可以了(不過 不能使用tab字元);
允許在檔案中加入選擇性的空行,以增加可讀性;
在乙個檔案中,可同時包含多個檔案,並用「——」分隔;
選擇性的符號「...」可以用來表示檔案結尾(在利用串流的通訊中,這非常有用,可以在不關閉串流的情況下,傳送結束訊號)。
yaml也有用來描述好幾行相同結構的資料的縮寫語法,陣列用''包括起來,hash用'{}'來包括。因此,上面的這個yaml能夠縮寫成這樣:
house:
family:
address:
john.yaml 檔案:
name: john smith
age: 37
spouse:
name: jane smith
age: 25
children:
- name: jimmy smith
age: 15
- name: jenny smith
age 12
陣列表示:
<?php
$john = array(
'name'=> 'john smith',
'age'=> 37,
'spouse'=> array(
'name'=> 'jane smith',
'age'=> 25
),'children'=> array(
0 =>array(
'name'=> 'jimmy smith',
'age'=> 5
),1 =>array(
'name'=> 'jenny smith',
'age'=> 3))
);
php 解析 yaml 檔案的類:
syck:
YAML檔案格式簡介
yaml是一種用來寫配置檔案的序列化語言,跟json有些像,yaml又稱作json的超集,yaml的設計則是為了友好可讀性,主要用於配置資訊的書寫,而json設計的目的則是為了簡單和通用,主要用於儲存資料和應用層資料通訊使用。yaml基於縮排的作用域跟python語法格式比較相似,縮排塊方便資料的結...
plist檔案格式簡介
plist是property list的縮寫。plist中包括一些命名值和使用core foundation型別建立的值的列表。這些型別包括cfstring,cfnumber,cfboolean,cfdata,cfdate,cfarray,以及cfdictionary。利用這些型別建立的資料能夠高效...
BMP檔案格式簡介
bmp檔案是一種畫素檔案,它儲存了一幅圖象中所有的畫素。這種檔案格式可以儲存單色位圖 16色或256色索引模式畫素圖 24位真彩色圖象,每種模式種單一畫素的大小分別為1 8位元組,1 2位元組,1位元組和3位元組。目前最常見的是256色bmp和24位色bmp。這種檔案格式還定義了畫素儲存的幾種方法,...