use XML::LibXML; use strict; my $file = (); my $d = XML::LibXML->new->parse_string(join "", $file); for my $dead ($d->findnodes(q{/opt/node[val = "2"]})) { $dead->unbindNode; } print $d->toString; Data____ 1 2 3