如何使用perl自动编辑html表?

时间:2012-03-29 08:23:45

标签: html perl html-table

我有大量的大型html表(大约1000个)需要编辑某些单元格或行。编辑本身对于所有必需的表都是相同的,因此可以轻松实现自动化。所以我一直在寻找一种方法来实现perl。我发现html :: TableExtract对于从表中获取数据非常有用,但我找不到编辑它们并将它们放回html的方法。如果有人用一些示例代码帮助我,我将不胜感激。

编辑:我尝试解析的文件就像http://pastehtml.com/view/bsyxg5y2t.html 我需要根据第一列的值编辑一些单元格或删除整行。

我尝试使用HTML :: TableExtract,但现在遇到了一个名为:

的错误
  

“不能在C:/ strawberry / perl / site / lib / HTML / ElementTable .pm第431行祝福非参考值。”

代码如下

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";
  }
}

注意:如果我改成它,它的工作原理,     使用HTML :: TableExtract 更改一个单元格我试过这个但是在使用树时遇到了同样的错误

$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;

1 个答案:

答案 0 :(得分:0)

您是否尝试过修改内容并在之后使用$table->tree->as_HTML