#!perl use strict; use XML::Twig; my $t = XML::Twig->new( twig_handlers => { 'testcase' => \&testcase, 'testsuite' => \&testsuite, }, pretty_print => 'indented',); $t->parsefile( 'test.xml' ); $t->print_to_file('new.xml'); $t->print(); my @case=(); sub testcase { my ($t,$e) = @_; push @case,$e->cut; }; sub testsuite { my ($t,$e) = @_; while ($_ = pop @case){ $_->paste($e); } };