#!/usr/bin/perl -w
# $Id: bench_filter_dispatcher_replace,v 1.2 2003/09/11 12:55:41 mrodrigu Exp $
use strict; 

use XML::Filter::Dispatcher qw( :all );
use XML::SAX::Machines qw( Pipeline );
use XML::LibXML::SAX;
use XML::SAX::Writer;

use Getopt::Long;

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

my $i=0;
my $writer=  XML::SAX::Writer->new();
my $f = XML::Filter::Dispatcher->new
          ( Rules => [ 'node()' => "Handler",               
                       'message' => sub { xrun_next_action; # to print the start tag
                                          $i++;
                                          $writer->characters( { Data => "[message $i] " });
                                        }
                     ],
            Handler => $writer,
          );

Pipeline( 'XML::LibXML::SAX', $f )->parse_uri( $in_file);
