my $parser = XML::Rules->new( rules => { _default => 'content', category => 'content array', entry => 'array no content', post => 'pass no content', } ); my $data = $parser->parse($the_xml); foreach my $entry (@$data) { print "Title: $entry->{title}\nContent: $entry->{content}\n"; if ($entry->{category)[0] eq 'blog') { print "It's a blog post\n\n"; } ...