use XML::Twig qw( ); sub twig_data_type { my ($twig, $ele) = @_; $ele->parent()->ignore() if $ele->trimmed_text() eq 'yyy'; return 1; } my $twig = XML::Twig->new( twig_handlers => { 'data/type' => \&twig_data_type, }, # Output will be nicely formatted, but not necessarily valid. pretty_print => 'indented', ); $twig->parse(\*DATA); $twig->print(); __DATA__ xxx a yyy b