#!/usr/bin/perl use warnings; use strict; use XML::LibXML; my $input = ''; my $dom = 'XML::LibXML'->load_xml(string => $input); for my $alt ($dom->findnodes('//image/alt[not(text())]')) { $alt->parentNode->removeChild($alt); } print $dom; #### open file.xml ; rm //image/alt[not(text())] ; save :b ;