use warnings;
use strict;
use XML::LibXML;
my $xml = <<'END_XML';
END_XML
my $doc = XML::LibXML->load_xml(string => $xml) or die;
my $xpc = XML::LibXML::XPathContext->new($doc);
for my $el ($xpc->findnodes('//xsl:element')) {
my $newel = $doc->createElement($el->getAttribute('name'));
$newel->appendChild($_) for $el->childNodes;
$el->replaceNode($newel);
}
print $doc;
__END__