У меня есть большое количество больших HTML-таблиц (около 1000), в которых необходимо редактировать определенные ячейки или строки ... само редактирование одинаково для всех необходимых таблиц, поэтому его можно легко автоматизировать.Поэтому я искал способ сделать это с помощью Perl.Я обнаружил, что html :: TableExtract очень полезен для извлечения данных из таблицы, но я не могу найти способ отредактировать их и вернуть обратно в html.Если кто-нибудь поможет мне с небольшим примером кода, я буду благодарен.
edit: файлы, которые я пытаюсь проанализировать, похожи на 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;