# $Id: Text.pm,v 1.5 2000/09/05 13:05:47 matt Exp $ package XML::XPath::Node::Text; use strict; use vars qw/@ISA/; @ISA = ('XML::XPath::Node'); package XML::XPath::Node::TextImpl; use vars qw/@ISA/; @ISA = ('XML::XPath::NodeImpl', 'XML::XPath::Node::Text'); use XML::XPath::Node ':node_keys'; sub new { my $class = shift; my ($text) = @_; my $pos = XML::XPath::Node->nextPos; my @vals; @vals[node_global_pos, node_text] = ($pos, $text); my $self = \@vals; bless $self, $class; } sub getNodeType { TEXT_NODE } sub isTextNode { 1; } sub appendText { my $self = shift; my ($text) = @_; $self->[node_text] .= $text; } sub getNodeValue { my $self = shift; $self->[node_text]; } sub getData { my $self = shift; $self->[node_text]; } sub setNodeValue { my $self = shift; $self->[node_text] = shift; } sub _to_sax { my $self = shift; my ($doch, $dtdh, $enth) = @_; $doch->characters( { Data => $self->getValue } ); } sub string_value { my $self = shift; $self->[node_text]; } sub toString { my $self = shift; XML::XPath::Node::XMLescape($self->[node_text], "<&"); } 1; __END__ =head1 NAME Text - an XML text node =head1 API =head2 new ( text ) Create a new text node. =head2 getValue / getData Returns the text =head2 string_value Returns the text =head2 appendText ( text ) Adds the given text string to this node. =cut