use strict; use warnings; use XML::SAX; my $h = Handler->new(); my $p = XML::SAX::ParserFactory->parser(Handler => $h) or die "Unable to get XML SAX parser object"; $p->parse_uri("10.xml"); BEGIN { package Handler; sub new { my $class = shift; bless({chars => ''}, ref $class || $class); } sub start_element { my ($this, $data) = @_; $this->{chars} = ''; print "start $data->{Name}\n"; } sub end_element { my ($this, $data) = @_; print "end $data->{Name} = ", length($this->{chars}), "\n"; $this->{chars} = ''; } sub characters { my ($this, $data) = @_; my $chars = $data->{Data}; $this->{chars} .= $chars; print "characters ",length($chars),"\n"; } } #### start assets characters 1 characters 2 start media characters 1 characters 4 start site characters 4 end site = 4 characters 1 characters 4 start name characters 15 end name = 15 characters 1 characters 4 start description end description = 0 characters 1 characters 4 start priority characters 1 end priority = 1 characters 1 characters 4 start publish_status characters 1 end publish_status = 1 characters 1 characters 4 start active characters 1 end active = 1 characters 1 characters 4 start source characters 4 end source = 4 characters 1 characters 4 start uri characters 58 end uri = 58 characters 1 characters 4 start cover_date characters 35 end cover_date = 35 characters 1 characters 4 start category characters 21 end category = 21 characters 1 characters 4 start output_channels characters 1 characters 6 start output_channel characters 8 end output_channel = 8 characters 1 characters 4 end output_channels = 5 characters 1 characters 4 start keywords end keywords = 0 characters 1 characters 4 start contributors end contributors = 0 characters 1 characters 4 start elements characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data characters 17 end data = 17 characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data end data = 0 characters 1 characters 6 start data end data = 0 characters 1 characters 4 end elements = 5 characters 1 characters 4 start file characters 1 characters 6 start name characters 22 end name = 22 characters 1 characters 6 start size characters 7 end size = 7 characters 1 characters 6 start data characters 76 characters 1 characters 76 characters 1 ... this repeats for a long time characters 76 characters 1 characters 76 characters 1 end data = 8786162 characters 1 characters 4 end file = 5 characters 1 characters 2 end media = 3 characters 1 end assets = 1