use strict; use XML::Rules; my $parser = XML::Rules->new( normalisespaces => 1, rules => { div => sub { if (exists $_[1]->{class}) { my $class = delete $_[1]->{class}; return '@'.$class => $_[1]; } else { return $_[0] => $_[1]; } } }, ); my $data = $parser->parse(\*DATA); use Data::Dumper; print Dumper($data); __DATA__
...
...
...
...
...
...