📄 literal.pm
字号:
# $Id: Literal.pm 4532 2004-05-11 05:15:40Z ezra $package XML::XPath::Literal;use XML::XPath::Boolean;use XML::XPath::Number;use strict;use overload '""' => \&value, 'cmp' => \&cmp;sub new { my $class = shift; my ($string) = @_; # $string =~ s/"/"/g;# $string =~ s/'/'/g; bless \$string, $class;}sub as_string { my $self = shift; my $string = $$self; $string =~ s/'/'/g; return "'$string'";}sub as_xml { my $self = shift; my $string = $$self; return "<Literal>$string</Literal>\n";}sub value { my $self = shift; $$self;}sub cmp { my $self = shift; my ($cmp, $swap) = @_; if ($swap) { return $cmp cmp $$self; } return $$self cmp $cmp;}sub evaluate { my $self = shift; $self;}sub to_boolean { my $self = shift; return (length($$self) > 0) ? XML::XPath::Boolean->True : XML::XPath::Boolean->False;}sub to_number { return XML::XPath::Number->new($_[0]->value); }sub to_literal { return $_[0]; }sub string_value { return $_[0]->value; }1;__END__=head1 NAMEXML::XPath::Literal - Simple string values.=head1 DESCRIPTIONIn XPath terms a Literal is what we know as a string.=head1 API=head2 new($string)Create a new Literal object with the value in $string. Note that " and' will be converted to " and ' respectively. That is not part of the XPathspecification, but I consider it useful. Note though that you have to goto extraordinary lengths in an XML template file (be it XSLT or whatever) tomake use of this: <xsl:value-of select=""I'm feeling &quot;sad&quot;""/>Which produces a Literal of: I'm feeling "sad"=head2 value()Also overloaded as stringification, simply returns the literal string value.=head2 cmp($literal)Returns the equivalent of perl's cmp operator against the given $literal.=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -