diff options
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'; |
