#!/usr/bin/perl --
use strict; use warnings;
use CGI qw/ *table *Tr Td /;
use HTML::TableContentParser;
my $html = <<'HTML';
<table>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>ro</td><td>sham</td><td>bo</td></tr>
<tr><td><ro></td><td><sham></td><td><bo></td></tr>
</table>
HTML
#~ my $p = HTML::TableContentParser->new();
#~ my $tables = $p->parse($html);
#~ use DDS; die Dump($tables);
my $tables =
[ { rows => [
{ cells => [
{ data => 1 },
{ data => 2 },
{ data => 3 }
] },
{ cells => [
{ data => 'ro' },
{ data => 'sham' },
{ data => 'bo' }
] },
{ cells => [
{ data => '<ro>' },
{ data => '<sham>' },
{ data => '<bo>' }
] }
] } ];
for my $t (@$tables) {
print start_table();
for my $r ( @{ $t->{rows} } ) {
print start_Tr();
for my $c ( @{ $r->{cells} } ) {
print Td( $c->{data} );
}
print end_Tr();
}
print end_table();
}
__END__
$ perl html.tablecontentparser.to.html.pl |xml_pp
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>ro</td>
<td>sham</td>
<td>bo</td>
</tr>
<tr>
<td><ro></td>
<td><sham></td>
<td><bo></td>
</tr>
</table>
Instead of HTML::TableContentParser , I would standardize on HTML::Tree and xpath, see
|