PHP 8.2.31
Preview: SAX.pm Size: 3.42 KB
/proc/thread-self/root/usr/local/lib64/perl5/XML/LibXML/SAX.pm

# $Id$
#
# This is free software, you may use it and distribute it under the same terms as
# Perl itself.
#
# Copyright 2001-2003 AxKit.com Ltd., 2002-2006 Christian Glahn, 2006-2009 Petr Pajas
#
#

package XML::LibXML::SAX;

use strict;
use warnings;

our $VERSION = "2.0213"; # VERSION TEMPLATE: DO NOT CHANGE

use XML::LibXML;
use XML::SAX::Base;

use parent qw(XML::SAX::Base);

use Carp;
use IO::File;

sub CLONE_SKIP {
  return $XML::LibXML::__threads_shared ? 0 : 1;
}

sub set_feature {
	my ($self, $feat, $val) = @_;

	if ($feat eq 'http://xmlns.perl.org/sax/join-character-data') {
		$self->{JOIN_CHARACTERS} = $val;
		return 1;
	}

	shift(@_);
	return $self->SUPER::set_feature(@_);
}

sub _parse_characterstream {
    my ( $self, $fh ) = @_;
    # this my catch the xml decl, so the parser won't get confused about
    # a possibly wrong encoding.
    croak( "not implemented yet" );
}

# See:
# https://rt.cpan.org/Public/Bug/Display.html?id=132759
sub _calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc
{
    return XML::LibXML->new( expand_entities => 1, );
}

sub _parse_bytestream {
    my ( $self, $fh ) = @_;
    $self->{ParserOptions}{LibParser}      = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
    $self->{ParserOptions}{ParseFunc}      = \&XML::LibXML::parse_fh;
    $self->{ParserOptions}{ParseFuncParam} = $fh;
    $self->_parse;
    return $self->end_document({});
}

sub _parse_string {
    my ( $self, $string ) = @_;
    $self->{ParserOptions}{LibParser}      = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
    $self->{ParserOptions}{ParseFunc}      = \&XML::LibXML::parse_string;
    $self->{ParserOptions}{ParseFuncParam} = $string;
    $self->_parse;
    return $self->end_document({});
}

sub _parse_systemid {
    my $self = shift;
    $self->{ParserOptions}{LibParser}      = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
    $self->{ParserOptions}{ParseFunc}      = \&XML::LibXML::parse_file;
    $self->{ParserOptions}{ParseFuncParam} = shift;
    $self->_parse;
    return $self->end_document({});
}

sub parse_chunk {
    my ( $self, $chunk ) = @_;
    $self->{ParserOptions}{LibParser}      = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
    $self->{ParserOptions}{ParseFunc}      = \&XML::LibXML::parse_xml_chunk;
    $self->{ParserOptions}{LibParser}->{IS_FILTER}=1; # a hack to prevent parse_xml_chunk from issuing end_document
    $self->{ParserOptions}{ParseFuncParam} = $chunk;
    $self->_parse;
    return;
}

sub _parse {
    my $self = shift;
    my $args = bless $self->{ParserOptions}, ref($self);

    if (defined($self->{JOIN_CHARACTERS})) {
    	$args->{LibParser}->{JOIN_CHARACTERS} = $self->{JOIN_CHARACTERS};
    } else {
    	$args->{LibParser}->{JOIN_CHARACTERS} = 0;
    }

    $args->{LibParser}->set_handler( $self );
    eval {
      $args->{ParseFunc}->($args->{LibParser}, $args->{ParseFuncParam});
    };

    if ( $args->{LibParser}->{SAX}->{State} == 1 ) {
        croak( "SAX Exception not implemented, yet; Data ended before document ended\n" );
    }

    # break a possible circular reference
    $args->{LibParser}->set_handler( undef );
    if ( $@ ) {
        croak $@;
    }
    return;
}

1;

Directory Contents

Dirs: 1 × Files: 38

Name Size Perms Modified Actions
SAX DIR
- drwxr-xr-x 2026-05-26 07:03:31
Edit Download
4.02 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
4.47 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
1.54 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
1.28 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
1.36 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
8.16 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
3.59 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
5.06 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
21.13 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
819 B lr--r--r-- 2026-05-21 15:37:09
Edit Download
6.23 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
1.99 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
13.48 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
27.81 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
591 B lr--r--r-- 2026-05-21 15:37:09
Edit Download
8.42 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
5.98 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
9.59 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
2.03 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
1.65 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
3.28 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
25.72 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
7.29 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
1.85 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
27.79 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
2.91 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
2.22 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
5.69 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
17.60 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
1.54 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
2.34 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
3.42 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
1.76 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
2.19 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
5.47 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
3.11 KB lr--r--r-- 2026-05-21 15:36:48
Edit Download
11.65 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download
1.64 KB lr--r--r-- 2026-05-21 15:37:09
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).