From 733b2a5c88b035229c26d9c3a7772972ffdd93fb Mon Sep 17 00:00:00 2001 From: "sgunderson@bigfoot.com" <> Date: Thu, 1 Mar 2007 15:42:29 +0100 Subject: [PATCH] In perl-sax, ignore the name to find the right end tag; level is just as good as name+level. --- perl-sax/XML/TemplateSAX/Handler.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/perl-sax/XML/TemplateSAX/Handler.pm b/perl-sax/XML/TemplateSAX/Handler.pm index e63ee4c..b684c93 100644 --- a/perl-sax/XML/TemplateSAX/Handler.pm +++ b/perl-sax/XML/TemplateSAX/Handler.pm @@ -78,7 +78,7 @@ sub start_element { if (defined($match)) { $self->SUPER::start_element($data); - push @{$self->{'stack'}}, [ $data->{'Name'}, $self->{'level'}, $obj ]; + push @{$self->{'stack'}}, [ $self->{'level'}, $obj ]; # # This is sort of ugly. We special-case replacement by outputting @@ -170,7 +170,7 @@ sub end_element { if (scalar @$stack > 0) { my $top = $stack->[scalar @$stack - 1]; - if ($data->{'Name'} eq $top->[0] && $self->{'level'} == $top->[1]) { + if ($self->{'level'} == $top->[0]) { my $obj = $self->{'obj'}; # did we just finish a clone operation? @@ -182,7 +182,7 @@ sub end_element { } $self->SUPER::end_element($data); - $self->{'obj'} = $top->[2]; + $self->{'obj'} = $top->[1]; pop @$stack; --$self->{'level'}; return; -- 2.39.2