use strict; use warnings; use XML::Twig; my @keywords = qw(this that the other); my $twig = XML::Twig->new ( pretty_print => 'indented', discard_spaces => 1, keep_encoding => 1, ); $twig->parse (do {local $/; }); my $topic = $twig->root (); my @newElts; push @newElts, [keyword => {translate => 'true'}, $_] for @keywords; my $keywordsElt = XML::Twig::Elt->new (keywords => {}, @newElts); $keywordsElt->paste (first_child => $topic); print $twig->sprint (); __DATA__