use strict; use XML::Rules; use Data::Dumper; my $parser = XML::Rules->new( stripspaces => 2, rules => { '_default' => 'as array', 'Publisher' => 'pass', 'Emphasis' => sub { my ($tag,$attr,$parser) = @_[0,1,4]; return $parser->ToXML($tag, $attr); } } ); print Dumper($parser->parse(\*DATA)); __DATA__ 978-3-642-123456 Is Light Blue (<Emphasis Type="Italic">azzurro</Emphasis> o bianco) Color Name Universal in the Italian Language?