#!/usr/bin/perl use warnings; use strict; use HTML::TreeBuilder; my $root = HTML::TreeBuilder->new; $root->implicit_tags(0); $root->parse_file( \*DATA ); foreach my $td ( $root->look_down( _tag => 'td' ) ) { my $td2 = $td->clone(); my $merge = HTML::TreeBuilder->new; $merge->implicit_tags(0); next unless ( scalar $td2->content_list > 2 ); my @anchor=(); my $href=''; foreach my $a ( $td2->look_down( _tag => 'a' ) ) { push( @anchor, $a->as_trimmed_text() ); $href = $a->attr('href'); } print qq(N=$href\t),join(' ', @anchor),qq(\n); $merge->unshift_content( [ 'a', {'href'=>$href}, @anchor ], ); $td->splice_content( 1, 2, $merge ); $merge->delete(); } print $root->as_HTML( undef, " " ); $root->delete(); exit( 0 ); __DATA__
OK OK, too 1 parta1 parta2
OK OK, too 2 partb1 partb2