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__
1
MyChild
2
MyChild MyUser
3
MyChild