#!/usr/bin/perl
use strict;
use warnings;
my $text= "
| Hello | | Bye | ";
use HTML::Parser;
my $parser = HTML::Parser->new( start_h => [ \&start,"self,tag,attr" ],
start_document_h => [ \&init,"self"]);
$parser->parse($text);
foreach my $item ( @{$parser->{_items}} )
{
print $item,"\n";
}
sub init
{
my ( $self ) = @_;
$self->{_items} = [];
}
sub start
{
my ( $self, $tag, $attribs) = @_;
if ( $tag eq 'td' && !exists $attribs->{class} )
{
$self->handler(text => \&get_text,"self,dtext" );
$self->handler(end => \&end,"self,tag");
}
}
sub get_text
{
my ( $self, $text) = @_;
$self->{_text} .= $text;
}
sub end
{
my ( $self, $tag ) = @_;
if ( $tag eq '/td' )
{
$self->handler(text => '' );
$self->handler(end => '');
push @{$self->{_items}}, $self->{_text};
$self->{_text} = '';
}
}
|