summaryrefslogtreecommitdiff
path: root/Xerl/XML
diff options
context:
space:
mode:
authorPaul Buetow (pluto.buetow.org) <paul@buetow.org>2013-09-15 14:26:47 +0200
committerPaul Buetow (pluto.buetow.org) <paul@buetow.org>2013-09-15 14:26:47 +0200
commit439c92f7f9fa119cac30f114bcf8a70dd1a5c16a (patch)
tree84d80257806dc652db1ba17ee5956347b8a0f4c5 /Xerl/XML
parent3d7a23ca133cf5591f129c10f2ca80f5e53433db (diff)
initial SAX parser
Diffstat (limited to 'Xerl/XML')
-rw-r--r--Xerl/XML/Reader.pm15
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';