summaryrefslogtreecommitdiff
path: root/XPath/Root.pm
diff options
context:
space:
mode:
Diffstat (limited to 'XPath/Root.pm')
-rw-r--r--XPath/Root.pm36
1 files changed, 36 insertions, 0 deletions
diff --git a/XPath/Root.pm b/XPath/Root.pm
new file mode 100644
index 0000000..ee5914b
--- /dev/null
+++ b/XPath/Root.pm
@@ -0,0 +1,36 @@
+# $Id: Root.pm,v 1.6 2001/03/16 11:10:08 matt Exp $
+
+package XML::XPath::Root;
+use strict;
+use XML::XPath::XMLParser;
+use XML::XPath::NodeSet;
+
+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 = XML::XPath::NodeSet->new();
+ $newset->push($nodeset->get_node(1)->getRootNode());
+ return $newset;
+}
+
+1;