use HTML::TreeBuilder::XPath; my $tree = HTML::TreeBuilder::XPath->new; $tree->parse_content( $content ); my @headers = $tree->findnodes( q{ //table[@class='HeaderFrame' ] } ) ->shift ## get first one ->findvalues( q{ .//td[@class='HeaderTitle'] } ); print "@headers\n"; #### my @headers = $tree->findvalues( q{ ( //table[ @class = 'HeaderFrame' ] )[1] //td[ @class = 'HeaderTitle' ] } );