#### use HTML::Parser; my $p = HTML::Parser->new( api_version => 3, start_h => [\&start_tag, "tagname, attr"], case_sensitive => 1, ); sub start_tag { my ($tag,$attr) = @_; if ($tag eq 'timeLimit') { print "start=$$attr{startTime} end=$$attr{endTime}\n"; } } $p->parse($data); $p->eof; use XML::LibXML; my $dom = XML::LibXML->load_xml(string => $data); for my $node ($dom->findnodes('//timeLimit')) { my $start = $node->getAttribute('startTime'); my $end = $node->getAttribute('endTime'); print "s=$start e=$end\n"; }