use strict; use warnings; no warnings 'uninitialized'; use XML::Rules; my $parser = XML::Rules->new( stripspaces => 7, rules => { _default => 'content', DATASOURCE => 'by NAME', NAGIOS => 'pass no content', }, ); my $data = $parser->parse($file); #use Data::Dumper; #print Dumper($data); print $data->{cur}{ACT}; #### my $parser = XML::Rules->new( stripspaces => 7, rules => { _default => 'content', DATASOURCE => sub { my ($tag,$attrs) = @_; return '@'.$attrs->{NAME} => $attrs; }, NAGIOS => 'pass no content', }, ); my $data = $parser->parse($file); #use Data::Dumper; #print Dumper($data); foreach my $datasource (@{$data->{cur}}) { print $datasource->{ACT}, "\n"; } #### my $parser = XML::Rules->new( stripspaces => 7, rules => { _default => '', 'NAME,ACT' => 'content', DATASOURCE => sub { my ($tag,$attrs) = @_; return '@'.$attrs->{NAME} => $attrs->{ACT}; }, NAGIOS => 'pass no content', }, ); my $data = $parser->parse($file); #use Data::Dumper; #print Dumper($data); print join( ", ", @{$data->{cur}}), "\n";