SILENT KILLERPanel

Current Path: > > usr > local > lib64 > perl5 > XML > LibXML >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/local/lib64/perl5/XML/LibXML/

NameTypeSizeLast ModifiedActions
SAX Directory - -
Attr.pod File 4121 bytes January 24 2024 15:13:41.
AttributeHash.pm File 4593 bytes January 24 2024 15:03:50.
Boolean.pm File 1601 bytes January 24 2024 15:03:50.
CDATASection.pod File 1315 bytes January 24 2024 15:13:41.
Comment.pod File 1396 bytes January 24 2024 15:13:41.
Common.pm File 8399 bytes January 24 2024 15:03:50.
Common.pod File 3672 bytes January 24 2024 15:13:41.
DOM.pod File 6379 bytes January 24 2024 15:13:41.
Devel.pm File 5028 bytes January 24 2024 15:03:50.
Document.pod File 21593 bytes January 24 2024 15:13:41.
DocumentFragment.pod File 819 bytes January 24 2024 15:13:41.
Dtd.pod File 2039 bytes January 24 2024 15:13:41.
Element.pod File 13806 bytes January 24 2024 15:13:41.
ErrNo.pm File 28499 bytes January 24 2024 15:03:50.
ErrNo.pod File 591 bytes January 24 2024 15:13:41.
Error.pm File 8653 bytes January 24 2024 15:03:50.
Error.pod File 6121 bytes January 24 2024 15:13:41.
InputCallback.pod File 9822 bytes January 24 2024 15:13:41.
Literal.pm File 2094 bytes January 24 2024 15:03:50.
Namespace.pod File 3362 bytes January 24 2024 15:13:41.
Node.pod File 26282 bytes January 24 2024 15:13:41.
NodeList.pm File 7489 bytes January 24 2024 15:03:50.
Number.pm File 1916 bytes January 24 2024 15:03:50.
PI.pod File 2271 bytes January 24 2024 15:13:41.
Parser.pod File 28453 bytes January 24 2024 15:13:41.
Pattern.pod File 2975 bytes January 24 2024 15:13:41.
Reader.pm File 5887 bytes January 24 2024 15:03:50.
Reader.pod File 18023 bytes January 24 2024 15:13:41.
RegExp.pod File 1574 bytes January 24 2024 15:13:41.
RelaxNG.pod File 2398 bytes January 24 2024 15:13:41.
SAX.pm File 3532 bytes January 24 2024 15:03:50.
SAX.pod File 1804 bytes January 24 2024 15:13:41.
Schema.pod File 2247 bytes January 24 2024 15:13:41.
Text.pod File 5601 bytes January 24 2024 15:13:41.
XPathContext.pm File 3223 bytes January 24 2024 15:03:50.
XPathContext.pod File 11767 bytes January 24 2024 15:13:41.
XPathExpression.pod File 1678 bytes January 24 2024 15:13:41.

Reading File: //usr/local/lib64/perl5/XML/LibXML//XPathContext.pm

# $Id: XPathContext.pm 422 2002-11-08 17:10:30Z phish $
#
# 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::XPathContext;

use strict;
use warnings;
use vars qw($VERSION @ISA $USE_LIBXML_DATA_TYPES);

use Carp;
use XML::LibXML;
use XML::LibXML::NodeList;

$VERSION = "2.0210"; # VERSION TEMPLATE: DO NOT CHANGE

# should LibXML XPath data types be used for simple objects
# when passing parameters to extension functions (default: no)
$USE_LIBXML_DATA_TYPES = 0;

sub CLONE_SKIP { 1 }

sub findnodes {
    my ($self, $xpath, $node) = @_;

    my @nodes = $self->_guarded_find_call('_findnodes', $node, $xpath);

    if (wantarray) {
        return @nodes;
    }
    else {
        return XML::LibXML::NodeList->new(@nodes);
    }
}

sub find {
    my ($self, $xpath, $node) = @_;

    my ($type, @params) = $self->_guarded_find_call('_find', $node, $xpath,0);

    if ($type) {
        return $type->new(@params);
    }
    return undef;
}

sub exists {
    my ($self, $xpath, $node) = @_;
    my (undef, $value) = $self->_guarded_find_call('_find', $node, $xpath,1);
    return $value;
}

sub findvalue {
    my $self = shift;
    return $self->find(@_)->to_literal->value;
}

sub _guarded_find_call {
    my ($self, $method, $node)=(shift,shift,shift);

    my $prev_node;
    if (ref($node)) {
        $prev_node = $self->getContextNode();
        $self->setContextNode($node);
    }
    my @ret;
    eval {
        @ret = $self->$method(@_);
    };
    $self->_free_node_pool;
    $self->setContextNode($prev_node) if ref($node);

    if ($@) {
      my $err = $@;
      chomp $err;
      croak $err;
    }

    return @ret;
}

sub registerFunction {
    my ($self, $name, $sub) = @_;
    $self->registerFunctionNS($name, undef, $sub);
    return;
}

sub unregisterNs {
    my ($self, $prefix) = @_;
    $self->registerNs($prefix, undef);
    return;
}

sub unregisterFunction {
    my ($self, $name) = @_;
    $self->registerFunctionNS($name, undef, undef);
    return;
}

sub unregisterFunctionNS {
    my ($self, $name, $ns) = @_;
    $self->registerFunctionNS($name, $ns, undef);
    return;
}

sub unregisterVarLookupFunc {
    my ($self) = @_;
    $self->registerVarLookupFunc(undef, undef);
    return;
}

# extension function perl dispatcher
# borrowed from XML::LibXSLT

sub _perl_dispatcher {
    my $func = shift;
    my @params = @_;
    my @perlParams;

    my $i = 0;
    while (@params) {
        my $type = shift(@params);
        if ($type eq 'XML::LibXML::Literal' or
            $type eq 'XML::LibXML::Number' or
            $type eq 'XML::LibXML::Boolean')
        {
            my $val = shift(@params);
            unshift(@perlParams, $USE_LIBXML_DATA_TYPES ? $type->new($val) : $val);
        }
        elsif ($type eq 'XML::LibXML::NodeList') {
            my $node_count = shift(@params);
            unshift(@perlParams, $type->new(splice(@params, 0, $node_count)));
        }
    }

    $func = "main::$func" unless ref($func) || $func =~ /(.+)::/;
    no strict 'refs';
    my $res = $func->(@perlParams);
    return $res;
}

1;

SILENT KILLER Tool