diff options
Diffstat (limited to 'XPath/Node/PI.pm')
-rw-r--r-- | XPath/Node/PI.pm | 81 |
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 |