404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.147.71.116: ~ $
# $Id: LocationPath.pm,v 1.8 2001/03/16 11:10:08 matt Exp $

package XML::XPathEngine::LocationPath;
use XML::XPathEngine::Root;
use strict;

sub new {
	my $class = shift;
	my $self = [];
	bless $self, $class;
}

sub as_string {
	my $self = shift;
	my $string;
	for (my $i = 0; $i < @$self; $i++) {
		$string .= $self->[$i]->as_string;
		$string .= "/" if $self->[$i+1];
	}
	return $string;
}

sub as_xml {
    my $self = shift;
    my $string = "<LocationPath>\n";
    
    for (my $i = 0; $i < @$self; $i++) {
        $string .= $self->[$i]->as_xml;
    }
    
    $string .= "</LocationPath>\n";
    return $string;
}

sub set_root {
	my $self = shift;
	unshift @$self, XML::XPathEngine::Root->new();
}

sub evaluate {
	my $self = shift;
	# context _MUST_ be a single node
	my $context = shift;
	die "No context" unless $context;
	
	# I _think_ this is how it should work :)
	
	my $nodeset = XML::XPathEngine::NodeSet->new();
	$nodeset->push($context);
	
	foreach my $step (@$self) {
		# For each step
		# evaluate the step with the nodeset
		my $pos = 1;
		$nodeset = $step->evaluate($nodeset);
	}
	
	return $nodeset;
}

1;

Filemanager

Name Type Size Permission Actions
Boolean.pm File 1.31 KB 0644
Expr.pm File 19.61 KB 0644
Function.pm File 10.8 KB 0644
Literal.pm File 2.17 KB 0644
LocationPath.pm File 1.1 KB 0644
NodeSet.pm File 4.06 KB 0644
Number.pm File 1.76 KB 0644
Root.pm File 634 B 0644
Step.pm File 14.17 KB 0644
Variable.pm File 850 B 0644