#!/usr/bin/perl -w
# $Id: bench_simple_extract,v 1.2 2003/09/19 18:52:26 mrodrigu Exp $
use strict;
use simple_benchmark; # to get memory size
use XML::Simple;

use Getopt::Long;

my( $in_file);
GetOptions( 'in_file=s' =>\$in_file); 
$in_file ||= 'test.xml';

my $xml= XMLin( $in_file, force_array => 1, force_content => 1);

my @messages;
extract_messages( $xml);

print join( "\n", @messages);

sub extract_messages
  { my $node= shift;
		while( my( $key, $value)= each %$node)
		  { if( $key eq 'message') 
					{ push @messages, map { $_->{content} } @$value }
        elsif( ref $value eq 'ARRAY')
          { foreach my $hash (grep { ref $_ eq 'HASH' } @$value) 
						  { extract_messages( $hash) }
          }
      }
  }


