codecamp

YAML 节点属性

每个表示节点包括两个主要特征,称为锚和标记。可以使用节点内容指定节点属性,从字符流中省略。

节点表示的基本示例如下 -

%YAML 1.1
---
!!map {
   ? &A1 !!str "foo"
   : !!str "bar",
   ? !!str &A2 "baz"
   : *a1
}

节点锚点

anchor属性表示将来参考的节点。 节点中YAML表示的字符流用&符号表示。 YAML处理器不需要保留锚名称以及其中包含的表示细节。以下代码解释了这一点 -

%YAML 1.1
---
!!map {
   ? !!str "First occurence"
   : &A !!str "Value",
   ? !!str "Second occurence"
   : *A
}

锚节点生成的YAML输出如下所示 -

---
!!map {
   ? !!str "First occurence"
   : !!str "Value",
   ? !!str "Second occurence"
   : !!str "Value",
}

节点标签

tag属性表示完全定义节点的本机数据结构的类型。 标签用(!)指示符表示。 标签被视为表示图的固有部分。 以下示例详细说明了节点标签 -

%YAML 1.1
---
!!map {
   ? !<tag:yaml.org,2002:str> "foo"
   : !<!bar> "baz"
}

节点内容

节点内容可以以流内容或块格式表示。 块内容延伸到行尾并使用缩进来表示结构。 每种集合类型可以以特定的单流集合样式表示,或者可以视为单个块。 以下代码详细解释了这一点 -

%YAML 1.1
---
!!map {
   ? !!str "foo"
   : !!str "bar baz"
}

%YAML 1.1
---
!!str "foo bar"

%YAML 1.1
---
!!str "foo bar"

%YAML 1.1
---
!!str "foo bar\n"



YAML 字符流
YAML 块标量头
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }