我是yaml的新手,我有一个关于用于多行的管道符号的问题。YAML有像下面这样的语法吗?
测试:|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列:期望一个‘块结束’,但找到:块映射开始“。
发布于 2013-09-09 22:37:58
YAML中行尾的管道符号表示后面的任何缩进文本都应解释为多行标量值。见YAML规范。
具体来说,管道表明(除了缩进之外)标量值应按字面解释,以保留换行符。相反,>字符表示多行“折叠”标量跟随,这意味着换行符被转换为空格。例如:
>>> 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'6+部分是缩进指示器(应该使用多少缩进空格的显式规范)和"chomping指示符“+,它控制标量文字末尾的额外空格的处理方式。
您所得到的错误是一个棘手的错误:这是因为缩进应该相对于当前块级元素。因此,在本例中,应该是2+而不是6+,因为最后一个块级元素是映射final:,文本从其中缩进2。更新由@bramvi更正。
发布于 2020-05-07 15:03:45
当您希望将新行保持为新行时,将使用该管道。
有关更多信息:https://yaml-multiline.info/
https://stackoverflow.com/questions/15540635
复制相似问题