my $parser = XML::LibXML->new() or die $!; my $doc1 = $parser->parse_file($filename1); my $xc1 = XML::LibXML::XPathContext->new($doc1->documentElement() ); $xc1->registerNs(x => 'http://checklists.nist.gov/xccdf/1.1'); $xc1->registerNs(dc => 'http://purl.org/dc/elements/1.1'); for $Check ( $xc1->findnodes('//x:Rule') ) { my $doc2 = $parser->parse_string($Check); my $xc2 = XML::LibXML::XPathContext->new($doc2->documentElement() ); $xc2->registerNs(x => 'http://checklists.nist.gov/xccdf/1.1'); foreach $Check_Content ( $xc2->findvalue('check-content') ) { push (@Check_Content1, $Check_Content); } @Check_Content1 = (); $result_string = $Check_Content1[0] . $Check_Content1[1]; push (@Check_Content, $result_string); } }