use XML::LibXML 1.93; use XML::LibXML::PrettyPrint qw/print_xml/; use PerlX::MethodCallWithBlock; XML::LibXML -> load_xml(IO => \*DATA) -> findnodes('//policyrules') -> foreach { my $elem = shift; $elem->parentNode->appendChild($_) foreach $elem->childNodes; $elem->parentNode->removeChild($elem); } -> map { $_->ownerDocument } -> foreach { print_xml $_ and exit };