summaryrefslogtreecommitdiff
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
parent3d7a23ca133cf5591f129c10f2ca80f5e53433db (diff)
initial SAX parser
-rw-r--r--SAXHandler.pm51
-rw-r--r--Xerl/XML/Reader.pm15
2 files changed, 15 insertions, 51 deletions
diff --git a/SAXHandler.pm b/SAXHandler.pm
deleted file mode 100644
index 66209e9..0000000
--- a/SAXHandler.pm
+++ /dev/null
@@ -1,51 +0,0 @@
-# Xerl (c) 2005-2011,2013 Dipl.-Inform. (FH) Paul C. Buetow
-#
-# E-Mail: xerl@dev.buetow.org WWW: http://xerl.buetow.org
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of buetow.org nor the names of its contributors may
-# be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED Paul C. Buetow ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT Paul C. Buetow BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-package Xerl::XML::SAXHandler;
-
-use base qw(XML::SAX::Base);
-
-use strict;
-use warnings;
-
-use Xerl::Base;
-
-sub start_document {
- my ($self, $doc) = @_;
-
- return undef;
-}
-
-sub start_element {
- my ($self, $doc) = @_;
-
- return undef;
-}
-
-1;
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';