use strict;
use warnings;
no warnings 'uninitialized';
use XML::Rules;
my $parser = XML::Rules->new(
rules => {
_default => 'raw',
'^start_element' => sub {
my ($tag,$attr,$context,$parents,$parser) = @_;
$parser->{pad}{found_userID} = 0;
return 1
},
userID => sub {
my ($tag,$attr,$context,$parents,$parser) = @_;
$parser->{pad}{found_userID} = 1;
return [$tag => $attr]
},
start_element => sub {
my ($tag,$attr,$context,$parents,$parser) = @_;
print { $parser->{parameters}[ $parser->{pad}{found_userID} ] } $parser->ToXML( $tag, $attr), "\n";
}
}
);
open my $FH1, '>', 'c:\temp\test1.xml';
open my $FH2, '>', 'c:\temp\test2.xml';
print $FH1 "\n";
print $FH2 "\n";
$parser->parse( \*DATA, [$FH1, $FH2]);
print $FH1 "\n";
print $FH2 "\n";
__DATA__
MyChild
MyChild
MyUser
MyChild