我是 yaml 新手,我对用于多行的管道符号 (|) 有疑问。 YAML 是否有类似于下面的语法?
test: |6+
在下面的两个 YAML 文件中,第一个有效,第二个无效。我不知道是什么原因造成的。
第一个文件
Name :
-
testing:
val1
-
second:
val2
-
third:
val3
-
then
-
final: |
a
aa
aaa
aaaa : 'test:'
第二个文件
Name :
-
testing:
val1
-
second:
val2
-
third:
val3
-
then
-
final: |6+
a
aa
aaa
aaaa : 'test:'
第二个文件是客户的。
我正在使用 XMLBeans 并收到此错误:
com.esotericsoftware.yamlbeans.parser.Parser$ParserException:第 17 行,第 12 列:预期“块结束”,但发现:块映射开始”.
YAML 中行末尾的管道符号表示后面的任何缩进文本都应解释为多行标量值。看YAML 规范 http://www.yaml.org/spec/1.2/spec.html#id2795688.
具体来说,管道指示(除了缩进)标量值应该按字面解释,以保留换行符。相反,>
字符表示后面是多行“折叠”标量,这意味着换行符将转换为空格。例如:
>>> import yaml
>>> yaml.load("""
... |
... This is a multi-line
... literal style scalar.
... """)
'This is a multi-line\nliteral style scalar.\n'
>>> yaml.load("""
... >
... This is a multi-line
... folded scalar; new lines are folded into
... spaces.
... """)
'This is a multi-line folded scalar; new lines are folded into spaces.\n'
The 6+
部分是缩进指示器(应使用多少缩进空间的明确规范)和“chomping指示器”+
它控制如何处理标量文字末尾的额外空格。
您收到的错误是一个棘手的错误:这是因为缩进应该相对于当前的块级元素。所以在这种情况下应该是2+
代替6+
因为最后一个块级元素是映射final:
并且字面量从它缩进 2。更新了@bramvi 的更正。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)