# $Id: /tree-xpathengine/trunk/lib/Tree/XPathEngine/Root.pm 17 2006-02-12T08:00:01.814064Z mrodrigu $
use strict;
sub new {
my $class = shift;
my $self; # actually don't need anything here - just a placeholder
bless \$self, $class;
}
sub as_string {
# do nothing
}
sub as_xml {
return "<Root/>\n";
}
sub evaluate {
my $self = shift;
my $nodeset = shift;
# warn "Eval ROOT\n";
# must only ever occur on 1 node
die "Can't go to root on > 1 node!" unless $nodeset->size == 1;
my $newset = Tree::XPathEngine::NodeSet->new();
$newset->push($nodeset->get_node(1)->xpath_get_root_node());
return $newset;
}
1;
__END__
=head1 NAME
Tree::XPathEngine::Root - going back to the root node in an XPath expression
=head1 METHODS
=head2 new
=head2 evaluate ($nodeset)
returns a nodeset containing the root node of the first element of the nodeset
=head2 as_string
=head2 as_xml
dumps the action as XML (as C<< <Root/> >>)