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 | |
| parent | 3d7a23ca133cf5591f129c10f2ca80f5e53433db (diff) | |
initial SAX parser
| -rw-r--r-- | SAXHandler.pm | 51 | ||||
| -rw-r--r-- | Xerl/XML/Reader.pm | 15 |
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'; |
