summaryrefslogtreecommitdiff
path: root/XPath/Node/PI.pm
diff options
context:
space:
mode:
Diffstat (limited to 'XPath/Node/PI.pm')
-rw-r--r--XPath/Node/PI.pm81
1 files changed, 81 insertions, 0 deletions
diff --git a/XPath/Node/PI.pm b/XPath/Node/PI.pm
new file mode 100644
index 0000000..bf2eb25
--- /dev/null
+++ b/XPath/Node/PI.pm
@@ -0,0 +1,81 @@
+# $Id: PI.pm,v 1.4 2000/08/24 16:23:02 matt Exp $
+
+package XML::XPath::Node::PI;
+
+use strict;
+use vars qw/@ISA/;
+
+@ISA = ('XML::XPath::Node');
+
+package XML::XPath::Node::PIImpl;
+
+use vars qw/@ISA/;
+@ISA = ('XML::XPath::NodeImpl', 'XML::XPath::Node::PI');
+use XML::XPath::Node ':node_keys';
+
+sub new {
+ my $class = shift;
+ my ($target, $data) = @_;
+
+ my $pos = XML::XPath::Node->nextPos;
+
+ my @vals;
+ @vals[node_global_pos, node_target, node_data] =
+ ($pos, $target, $data);
+ my $self = \@vals;
+ bless $self, $class;
+}
+
+sub getNodeType { PROCESSING_INSTRUCTION_NODE }
+
+sub isPINode { 1; }
+sub isProcessingInstructionNode { 1; }
+
+sub getTarget {
+ my $self = shift;
+ $self->[node_target];
+}
+
+sub getData {
+ my $self = shift;
+ $self->[node_data];
+}
+
+sub _to_sax {
+ my $self = shift;
+ my ($doch, $dtdh, $enth) = @_;
+ # PI's not supported in PerlSAX 1
+}
+
+sub string_value {
+ my $self = shift;
+ return $self->[node_data];
+}
+
+sub toString {
+ my $self = shift;
+ return "<?" . $self->[node_target] . " " . XML::XPath::Node::XMLescape($self->[node_data], ">") . "?>";
+}
+
+1;
+__END__
+
+=head1 NAME
+
+PI - an XML processing instruction node
+
+=head1 API
+
+=head2 new ( target, data )
+
+Create a new PI node.
+
+=head2 getTarget
+
+Returns the target
+
+=head2 getData
+
+Returns the data
+
+=cut