解析YAML文本块时出错

时间:2011-05-18 19:14:21

标签: ruby yaml

我是YAML的新手,并试图做一个YAML阻止但我收到以下错误:

  

扫描块映射时:预期,但发现:#< ScalarToken值=“内容:|这是测试测试测试的测试非常好的测试是啊是的测试测试测试”Style =“None”> (第8行,第1栏)

虽然在没有|的情况下工作正常,但我希望保留空白。

YAML文件(Home.yml):

---
section:
    title: About this site
    content:    |
        This is a test of a test test test test
        A very very good test 
        A test of test test 
section:
    title: Source code
    content: |
        Licens:: BSD
        Link:: Here
        Foo 
...

Ruby代码:

home = YAML.load_file('data/Home.yml')
home.inspect

1 个答案:

答案 0 :(得分:1)

您使用的是哪个YAML解析器? Ruby 1.8.7解析器和1.9中的解析器都解析了你问题中的YAML。

还有麻烦。你给出的语法是这样的哈希:

{
  'section' => {
    'title' => "About this site",
    'content => ...
  }
  'section' => {
    'title' => 'Source code',
    'content' => ...
  }
}

但是,你不能有两个哈希键是相同的。会发生什么是最后一个获胜。你可能正在寻找一系列哈希。为此,请使用以下YAML语法:

---
-
  section:
    title: About this site
    content: |
        This is a test of a test test test test
        A very very good test
        A test of test test
-
  section:
    title: Source code
    content: |
        Licens:: BSD
        Link:: Here
        Foo