⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 person.pm

📁 网页留言本,比一般的留言簿管用
💻 PM
字号:
# $Id: Person.pm 4536 2004-05-11 05:33:05Z btrott $package XML::Atom::Person;use strict;use XML::Atom;use base qw( XML::Atom::ErrorHandler );use XML::Atom::Util qw( first );use constant NS => 'http://purl.org/atom/ns#';sub new {    my $class = shift;    my $person = bless {}, $class;    $person->init(@_) or return $class->error($person->errstr);    $person;}sub init {    my $person = shift;    my %param = @_;    my $elem;    unless ($elem = $param{Elem}) {        if (LIBXML) {            my $doc = XML::LibXML::Document->createDocument('1.0', 'utf-8');            $elem = $doc->createElementNS(NS, 'author'); ## xxx            $doc->setDocumentElement($elem);        } else {            $elem = XML::XPath::Node::Element->new('author'); ## xxx            my $ns = XML::XPath::Node::Namespace->new('#default' => NS);            $elem->appendNamespace($ns);        }    }    $person->{elem} = $elem;    $person;}sub elem { $_[0]->{elem} }sub get {    my $person = shift;    my($name) = @_;    my $node = first($person->elem, NS, $name) or return;    my $val = LIBXML ? $node->textContent : $node->string_value;    if ($] >= 5.008) {        require Encode;        Encode::_utf8_off($val);    }    $val;}sub set {    my $person = shift;    my($name, $val) = @_;    my $elem;    unless ($elem = first($person->elem, NS, $name)) {        if (LIBXML) {            $elem = XML::LibXML::Element->new($name);            $elem->setNamespace(NS);        } else {            $elem = XML::XPath::Node::Element->new($name);            my $ns = XML::XPath::Node::Namespace->new('#default' => NS);            $elem->appendNamespace($ns);        }        $person->elem->appendChild($elem);    }    if (LIBXML) {        $elem->removeChildNodes;        $elem->appendChild(XML::LibXML::Text->new($val));    } else {        $elem->removeChild($_) for $elem->getChildNodes;        $elem->appendChild(XML::XPath::Node::Text->new($val));    }    $val;}sub as_xml {    my $person = shift;    if (LIBXML) {        my $doc = XML::LibXML::Document->new('1.0', 'utf-8');        $doc->setDocumentElement($person->elem);        return $doc->toString(1);    } else {        return '<?xml version="1.0" encoding="utf-8"?>' . "\n" .            $person->elem->toString;    }}sub DESTROY { }use vars qw( $AUTOLOAD );sub AUTOLOAD {    (my $var = $AUTOLOAD) =~ s!.+::!!;    no strict 'refs';    *$AUTOLOAD = sub {        @_ > 1 ? $_[0]->set($var, @_[1..$#_]) : $_[0]->get($var)    };    goto &$AUTOLOAD;}1;__END__=head1 NAMEXML::Atom::Person - Author or contributor object=head1 SYNOPSIS    my $author = XML::Atom::Person->new;    $author->email('foo@example.com');    $author->name('Foo Bar');    $entry->author($author);=head1 DESCRIPTIONI<XML::Atom::Person> represents an author or contributor element in anAtom feed or entry.=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -