#!/bin/perl -w use strict; use XML::Twig; my $file = 'input.xml'; my $parser = new XML::Twig(KeepSpaces => 'true', ErrorContext => 2); $parser->parsefile($file); my $sc = $parser->root->first_child( q{ServerCluster[@Name="cl_app302_prod"]} ); my $ps = $sc->first_child('PrimaryServers'); $ps->cut_children; $ps->insert_new_elt( Server => { Name => "New_1"}); $ps->insert_new_elt( Server => { Name => "New_2"}); open(PF, "> out.xml") or die "can't open file $!\n"; $parser->root->print(\*PF); #### ####