use strict; use warnings; use XML::Xerces; use Data::Dumper; my $parser = XML::Xerces::XercesDOMParser->new(); $parser->setDoNamespaces(1); $parser->setDoSchema(1); $parser->setCreateEntityReferenceNodes(1); $parser->setDisableDefaultEntityResolution(0); #$parser->setValidationScheme($XML::Xerces::AbstractDOMParser::Val_Always); $parser->setErrorHandler(new XML::Xerces::PerlErrorHandler()); eval { $parser->parse($dn.$xml_file_name); }; if($@) { XML::Xerces::error($@); } my $doc = $parser->getDocument(); my $event_list = $doc->getElementsByTagName('event-def'); my $event_count = $event_list->getLength(); for(my $i=0;$i<$event_count;$i++) { my $pMap = []; my $node = $event_list->item($i); my $attr_map = $node->getAttributes(); my %attr = $node->getAttributes(); print Dumper(%attr); }