use strict; use warnings; use XML::XPath; use Data::Dumper; my $xp = XML::XPath->new(ioref => *DATA); my @name = $xp->findnodes('/md_map/md[@name]'); print $_->string_value,$/ for @name; __DATA__ ARS HDSrv Sch1 Demo Y ARS HDSrv Sch2 Demo Y ARS HDSrv Sch1 Demo pass N