use XML::DOM; my $xml =< EOXML my $parser = new XML::DOM::Parser; my $doc = $parser->parse($xml); my $things = $doc->getElementsByTagName ("Things")->[0]; my $newthing = $doc->createElement('Thing'); $things->appendChild($newthing); my $badthings = $doc->getElementsByTagName ("BadThing"); foreach $badthing ( @{$badthings} ) { $doc->getDocumentElement()->removeChild($badthing); } print $doc->toString();