2016-05-20 20 views
1

私はnokogiriを使用してHTMLデータをYAML構造化に解析しています。私は、HTMLテーブルを人間がYAML形式で読めるようにする方法を見ているのに困っています。これについて以前経験した人は誰ですか?もしそうなら、いくつかの光をあげてください。HTMLテーブルからYAMLへの変換

答えて

0

私は双方向(YAML - > HTMLとHTML - > YAML)を行い、YAML - HTMLは実際には私が著者であるruamel.yaml.cmdパッケージに入っています。

HTMLはテーブルです。与えられたものですが、ヘッダーがあると仮定します。

あなたはYAMLでこれを表現することができますいくつかの方法があります
A B C 
1 2 3 
5 6 7 

、ここでは2つの例です:だから要素数のABC 2つのデータ行のヘッダー行で、次の表を取ることができます。

  1. 上位レベルは、ヘッダ値、キーと列マッピングである配列で値:

    A: [1, 5] 
    B: [2, 6] 
    C: [3, 7] 
    
  2. トップレベルは、リストであり、各要素はデータのヘッダ値のマッピングであります値:

- A: 1 
    B: 2 
    C: 3 
- A: 5 
    B: 6 
    C: 7 
は、私は2番目の1が、より直感的に見つけるが、それはヘッダー文字列としてより冗長ですすべてのシーケンス要素でスカラーとして繰り返されます。

テーブルに行「ヘッダー」と列ヘッダーがある場合は、キーが行ヘッダーと列ヘッダーのシーケンスで、セルの内容の値が上位のマッピングを選択できます。
表:

A B 
K 1 2 
L 5 6 

はYAMLの対応:

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

はYAMLをuglifyingせずに、ほとんどのYAMLダンプであなたが作るしたいマッピング内のキーの順序を制御することはできませんのでご注意くださいタグ付き。

出力形式を決定してテーブルを解析したら、テーブルの行/列とセルを歩き回って、YAMLにダンプするデータ構造を作成するのは比較的簡単です(そのPythonとruamel.yamlで上記の例で行ったことです)