#!/usr/bin/perl -w
# $Id: bench_twig_smallest_complex,v 1.1 2003/09/19 18:52:26 mrodrigu Exp $
use strict;
use simple_benchmark;
use XML::Twig;

use Getopt::Long;

my( $in_file, $print);
GetOptions( 'print!' => \$print, 'in_file=s' =>\$in_file);
$in_file ||= 'test.xml';
$print = 1 unless( defined $print); 


my $message_nb= 0;

my $t= XML::Twig->new( twig_print_outside_roots => 1,
		                   twig_roots => 
		               { q{process[@action="delete"]}     => sub { },
			               q{process[@action="duplicate"]}  => sub { if( $print) { $_->print; $_->print; } $_[0]->purge; },							
			               q{process[@action="change_tag"]} => sub { $_->set_tag( 'new_tag'); $_->print if( $print); $_[0]->purge; },							
			               q{process[@action="prefix"]}     => sub { $_->insert_new_elt( first_child => 'prefix', "prefixed "); 
												                                       $_->print if( $print); $_[0]->purge;
																													   },							
			               q{process[@action="add_att"]}    => sub { $_->set_att( new_att => "foo"); $_->print if( $print); $_[0]->purge; },							
			               q{process[@action="erase"]}      => sub { print $_->xml_string if( $print); $_[0]->purge; },		
					           					 
                   },
													)
         ->parsefile( $in_file);


