]> git.sesse.net Git - xml-template/blob - perl-sax/XML/TemplateSAX/Cleaner.pm
6269306fb8c8b3912566cb5699302a9e39361222
[xml-template] / perl-sax / XML / TemplateSAX / Cleaner.pm
1 #! /usr/bin/perl
2
3 use strict;
4 use warnings;
5 package XML::TemplateSAX::Cleaner;
6 use base qw(XML::SAX::Base);
7
8 sub start_element {
9         my ($self, $data) = @_;
10         return if ($data->{'NamespaceURI'} eq 'http://template.sesse.net/');
11
12         # we need to make a copy here, or we'll confuse the upper layers.
13         $data = { %$data };
14         my $attrs = $data->{'Attributes'} = { %{$data->{'Attributes'}} };
15         
16         for my $a (keys %$attrs) {
17                 if ($attrs->{$a}->{'NamespaceURI'} eq 'http://template.sesse.net/') {
18                         delete $attrs->{$a};
19                 }
20         }
21
22         $self->SUPER::start_element($data);
23 }
24         
25 sub end_element {
26         my ($self, $data) = @_;
27
28         return if ($data->{'NamespaceURI'} eq 'http://template.sesse.net/');
29         
30         $self->SUPER::end_element($data);
31 }
32
33 1;