use strict; use warnings; no warnings 'uninitialized'; use XML::Rules; my $parser = XML::Rules->new( rules => { _default => 'raw extended', start_element => sub { my ($tag,$attr,$context,$parents,$parser) = @_; print {$parser->{parameters}[( exists $attr->{':userID'} ? 0 : 1 )]} $parser->ToXML( $tag, $attr); } } ); open my $FH1, '>', 'test1.xml'; open my $FH2, '>', 'test2.xml'; open my $FH3, "$ARGV[0]"; print $FH1 "\n"; print $FH2 "\n"; $parser->parse( <$FH3>, [$FH1, $FH2]); print $FH1 "\n\n"; print $FH2 "\n\n";