2012-03-29 18 views
2

私はいくつかのセルや行を編集する必要がある大きなhtmlテーブル(約1000)があります。編集自体はすべての必要なテーブルで同じですので、簡単に自動化することができます。だから私はperlでそれをする方法を探していた。私はhtml :: TableExtractがテーブルからデータを取得するのに非常に便利だが、それらを編集してHTMLに戻す方法を見つけることができないことを発見しました。誰かが少しのサンプルコードで私を助けてくれたら、私は感謝します。自動的にhtmlテーブルをperlで編集するには?

編集:私が解析しようとしているファイルは、http://pastehtml.com/view/bsyxg5y2t.htmlです。 最初の列の値に従って、いくつかのセルを編集したり、行全体を削除する必要があります。

私はHTML :: TableExtractを使用しようとしましたが、今と呼ばれるエラーで立ち往生:

「Cで非基準値を祝福することはできません:/イチゴを/ Perl/site/lib/HTML/ElementTable .pmライン431。私は木を使用しているとき、私はこれを試してみましたが、同じエラーが発生しましたセルを変更するには 使用HTML :: TableExtract 、それを変更した場合、その作業:

use strict; 
use warnings; 
use HTML::TableExtract 'tree'; 
use YAML; 
print "starting \n"; 
my @headers = (qw(mRNA Chromosome)); 
$te = HTML::TableExtract->new(slice_columns=> 1, 
           keep_html => 0, 
       headers => \@headers); 
$te->parse_file('hsa-let-7a-2-3p-3.html'); 
foreach my $ts ($te->tables) { 
    print "======= Table (", join(',', $ts->coords), ") =======\n"; 
    print join("\t", @headers), "\n"; 

    foreach my $row ($ts->rows) { 
    print join(',', @$row), "\n"; 
    } 
} 

注意を次のようにコードがある

$table_tree = $ts->tree; 
$table_tree->cell(2,2)->replace_content('change here'); 
$table_html = $table_tree->as_HTML; 
$table_text = $table_tree->as_text; 
$document_tree = $te->tree; 
$document_html = $document_tree->as_HTML; 
print $document_html; 
+0

これまでに何を試みましたか? – m0skit0

+0

データを適切な形式で保存できないのはなぜですか?例えば。 SQLデータベースに保存します。 – ThiefMaster

+0

問題は、予測アルゴリズムによってテーブルが生成されているため、アルゴリズムを変更せずにこれらのテーブルのフィルタを追加する必要があります。 –

答えて

0

コンテンツを修正してから、$table->tree->as_HTMLを使用しましたか?

+0

これはうまくいくでしょう(HTMLソースの書式を保存しなければならない場合を除く)。 –

+0

@weismat私はhtml :: tableExtractの例に続いてそれをやろうとしていましたが、coudntはそれを行いました。私はperlに新しいです。あなたは私に小さな例を与えて、それを説明してください。 –

+0

@ David-SkyMesh私はhtmlのフォーマットを保存する必要があるのは、私の基準に従っていくつかの行を削除する必要があるだけです。 –

関連する問題