From 439c92f7f9fa119cac30f114bcf8a70dd1a5c16a Mon Sep 17 00:00:00 2001 From: "Paul Buetow (pluto.buetow.org)" Date: Sun, 15 Sep 2013 14:26:47 +0200 Subject: initial SAX parser --- Xerl/XML/Reader.pm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Xerl') 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'; -- cgit v1.2.3