Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
YAML中管道符号的用途是什么?_Yaml - Fatal编程技术网

YAML中管道符号的用途是什么?

YAML中管道符号的用途是什么?,yaml,Yaml,我是yaml新手,我对用于多行的管道符号(|)有一个问题。YAML是否有如下语法 测试:| 6+ 在下面的两个YAML文件中,第一个工作,第二个不工作。我不知道这是什么原因造成的 第一个文件 Name : - testing: val1 - second: val2 - third: val3 - then - final: | a aa aaa aaaa : 'test:

我是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:'
第二个文件

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
>>>yaml.load(“”)
... |
…这是一条多线
…文字样式标量。
... """)
'这是一个多行\n文字样式标量。\n'
>>>yaml.load(“”)
... >
…这是一条多线
…折叠标量;新行被折叠成
…空间。
... """)
'这是一个多行折叠标量;新行被折叠到空格中。\n'
6+
部分是缩进指示符(一个关于应该使用多少缩进空格的明确说明),带有“chomping指示符”
++
,它控制标量文本末尾额外空格的处理方式


您得到的错误是一个棘手的错误:这是因为缩进应该相对于当前块级元素。因此在本例中,缩进应该是
4+
而不是
6+
,因为最后一个块级元素是数组项(由
-
指定)文字缩进了4。有点令人惊讶的是,
final:|
映射不被视为块元素,即使它的值是多行的。如果你仔细想想,它还是有点道理的——它仍然只是一个“一行”键:值“测绘。该值恰好对多行标量值使用了特殊语法。令人困惑,但在某种程度上是一致的…

当您希望新行保留为新行时,将使用管道

有关更多信息:

另请参阅