$81 GRAYBYTE WORDPRESS FILE MANAGER $17

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/usr/local/lib64/perl5/XML/LibXML/

HOME
Current 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;


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
21 Mar 2024 12.58 PM
root / root
0755
SAX
--
21 Mar 2024 12.58 PM
root / root
0755
Attr.pod
4.024 KB
24 Jan 2024 3.13 PM
root / root
0444
AttributeHash.pm
4.485 KB
24 Jan 2024 3.03 PM
root / root
0444
Boolean.pm
1.563 KB
24 Jan 2024 3.03 PM
root / root
0444
CDATASection.pod
1.284 KB
24 Jan 2024 3.13 PM
root / root
0444
Comment.pod
1.363 KB
24 Jan 2024 3.13 PM
root / root
0444
Common.pm
8.202 KB
24 Jan 2024 3.03 PM
root / root
0444
Common.pod
3.586 KB
24 Jan 2024 3.13 PM
root / root
0444
DOM.pod
6.229 KB
24 Jan 2024 3.13 PM
root / root
0444
Devel.pm
4.91 KB
24 Jan 2024 3.03 PM
root / root
0444
Document.pod
21.087 KB
24 Jan 2024 3.13 PM
root / root
0444
DocumentFragment.pod
0.8 KB
24 Jan 2024 3.13 PM
root / root
0444
Dtd.pod
1.991 KB
24 Jan 2024 3.13 PM
root / root
0444
Element.pod
13.482 KB
24 Jan 2024 3.13 PM
root / root
0444
ErrNo.pm
27.831 KB
24 Jan 2024 3.03 PM
root / root
0444
ErrNo.pod
0.577 KB
24 Jan 2024 3.13 PM
root / root
0444
Error.pm
8.45 KB
24 Jan 2024 3.03 PM
root / root
0444
Error.pod
5.978 KB
24 Jan 2024 3.13 PM
root / root
0444
InputCallback.pod
9.592 KB
24 Jan 2024 3.13 PM
root / root
0444
Literal.pm
2.045 KB
24 Jan 2024 3.03 PM
root / root
0444
Namespace.pod
3.283 KB
24 Jan 2024 3.13 PM
root / root
0444
Node.pod
25.666 KB
24 Jan 2024 3.13 PM
root / root
0444
NodeList.pm
7.313 KB
24 Jan 2024 3.03 PM
root / root
0444
Number.pm
1.871 KB
24 Jan 2024 3.03 PM
root / root
0444
PI.pod
2.218 KB
24 Jan 2024 3.13 PM
root / root
0444
Parser.pod
27.786 KB
24 Jan 2024 3.13 PM
root / root
0444
Pattern.pod
2.905 KB
24 Jan 2024 3.13 PM
root / root
0444
Reader.pm
5.749 KB
24 Jan 2024 3.03 PM
root / root
0444
Reader.pod
17.601 KB
24 Jan 2024 3.13 PM
root / root
0444
RegExp.pod
1.537 KB
24 Jan 2024 3.13 PM
root / root
0444
RelaxNG.pod
2.342 KB
24 Jan 2024 3.13 PM
root / root
0444
SAX.pm
3.449 KB
24 Jan 2024 3.03 PM
root / root
0444
SAX.pod
1.762 KB
24 Jan 2024 3.13 PM
root / root
0444
Schema.pod
2.194 KB
24 Jan 2024 3.13 PM
root / root
0444
Text.pod
5.47 KB
24 Jan 2024 3.13 PM
root / root
0444
XPathContext.pm
3.147 KB
24 Jan 2024 3.03 PM
root / root
0444
XPathContext.pod
11.491 KB
24 Jan 2024 3.13 PM
root / root
0444
XPathExpression.pod
1.639 KB
24 Jan 2024 3.13 PM
root / root
0444

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF