HTML表转换为YAML

时间:2016-05-20 16:07:20

标签: html html-table yaml

我正在使用nokogiri将HTML数据解析为YAML结构。我无法看到如何使用YAML格式的HTML表格进行人工阅读。有过这方面经验的人吗?如果是的话,请稍微阐明一下

1 个答案:

答案 0 :(得分:0)

我已经完成了两个方向(YAML - > HTML和HTML - > YAML),而YAML到HTML实际上是我作为作者的ruamel.yaml.cmd包。

HTML是一个表,这是一个给定的,我会假设它有一个标题。因此,让我们在下表中使用包含元素ABC的标题行以及两个数字数据行:

A  B  C
1  2  3
5  6  7

有几种方法可以在YAML中表示这一点,这里有两个例子。

  1. 顶级是一个映射,标题值是键,列是序列中的值:

    A: [1, 5]
    B: [2, 6]
    C: [3, 7]
    
  2. 顶级是列表,每个元素是标头值到数据值的映射:

    - A: 1
      B: 2
      C: 3
    - A: 5
      B: 6
      C: 7
    
  3. 我发现第二个更直观,但由于标题字符串在每个序列元素中作为标量重复,因此更加冗长。

    如果您的表有行“标题”和列标题,您可能更愿意选择顶层映射,其中键是行和列标题的序列,值是单元格的内容。
    表:

      A B 
    K 1 2
    L 5 6
    

    相应的YAML:

    [A, K]: 1
    [A, L]: 5
    [B, K]: 2
    [B, L]: 6
    

    请注意,对于大多数YAML转储程序,您无法控制要生成的映射中的键的顺序,而无需使用标记来标记YAML。

    一旦确定了输出格式并解析了表格,就可以相对容易地遍历表格的行/列和单元格,以创建以您希望的方式转储到YAML的数据结构(即我用上面的例子做了什么,用Python和ruamel.yaml