diff options
| author | Paul Buetow (pluto.buetow.org) <paul@buetow.org> | 2013-09-15 14:26:47 +0200 |
|---|---|---|
| committer | Paul Buetow (pluto.buetow.org) <paul@buetow.org> | 2013-09-15 14:26:47 +0200 |
| commit | 439c92f7f9fa119cac30f114bcf8a70dd1a5c16a (patch) | |
| tree | 84d80257806dc652db1ba17ee5956347b8a0f4c5 /Xerl/XML | |
| parent | 3d7a23ca133cf5591f129c10f2ca80f5e53433db (diff) | |
initial SAX parser
Diffstat (limited to 'Xerl/XML')
| -rw-r--r-- | Xerl/XML/Reader.pm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Xerl/XML/Reader.pm b/Xerl/XML/Reader.pm index 3605c04..c3ecbcd 100644 --- a/Xerl/XML/Reader.pm +++ b/Xerl/XML/Reader.pm @@ -32,8 +32,11 @@ package Xerl::XML::Reader; use strict; use warnings; +use XML::SAX; + use Xerl::Base; use Xerl::XML::Element; +use Xerl::XML::SAXHandler; sub open($) { my Xerl::XML::Reader $self = $_[0]; @@ -47,9 +50,21 @@ sub open($) { return 0; } +sub sax() { + my Xerl::XML::Reader $self = $_[0]; + + my $parser = XML::SAX::ParserFactory->parser( + Handler => Xerl::XML::SAXHandler->new() + ); + + $parser->parse_uri($self->get_path()); +} + sub parse($) { my Xerl::XML::Reader $self = $_[0]; + my $sax_result = $self->sax(); + my $rarray = $self->get_array(); return $self unless ref $rarray eq 'ARRAY'; |
