#!/usr/bin/perl -w
# $Id: bench_regexp_extract,v 1.2 2003/09/10 23:37:43 mrodrigu Exp $
use strict;
use simple_benchmark; # to get memory size

use XML::TreeBuilder;

use Getopt::Long;

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

my %action=( delete     => sub { shift->delete; },
#);my%dummy=(
             duplicate  => sub { my $process= shift;
                                 $process->preinsert( $process->clone);
                               },
             change_tag => sub { shift->tag( 'new_tag'); },
             prefix     => sub { my $prefix= HTML::Element->new( 'prefix');
                                 $prefix->push_content( 'prefixed ');
                                 shift->unshift_content( $prefix); 
                               },
             add_att    => sub { shift->attr( new_att => "foo"); },
             erase      => sub { shift->replace_with_content(); },
           );

my $root= XML::TreeBuilder->new();
$root->parse_file( $in_file);

my $i=0;
foreach my $process ($root->find_by_tag_name( 'process'))
  { $action{$process->attr( 'action')}->( $process) if( $action{$process->attr( 'action')}) ;
 	}

print $root->as_XML;

