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

📄 element.pm

📁 ARM上的如果你对底层感兴趣
💻 PM
字号:
#
# XML::Element
#
# Base class for XML Elements.  Provides the ability to output the XML document
# once it's been parsed using the XML::Parser module.
#
###############################################################################

$XML::Element::revision = '$Id: Element.pm,v 1.1.1.1 1998/09/23 18:50:25 graham Exp $';
$XML::Element::VERSION  = '0.10';

###############################################################################
# Define the basic element type.
###############################################################################
package XML::Element;

use HTML::Entities;

###############################################################################
# Allow for creation via 'new'.
###############################################################################
sub new
{
    my ($class, %args) = @_;
    bless \%args, $class;
}

###############################################################################
# Output the whole XML document (from here on down)
###############################################################################
sub output
{
    my $self = shift;
    my $type= ref $self;
    $type =~ s/.*:://;

    print '<' . $type;
    foreach (sort keys %{$self})
    {
        if ($_ !~ /Text|Kids/)
            { print " $_=\"" . $self->{$_} . '"'; }
    }
    my @kids = @{ $self->{Kids} };
    if ($#kids >= 0)
    {
        print '>';
        foreach (@kids)
        {
            # Allow for outputting of char data unless overridden
            if ((ref $_) =~ /::Characters$/o)
            {
                print encode_entities( $_->{Text} );
            }
            else
            {
                $_->output();
            }
        }
        print '</' . $type . '>';
    }
    else
    {
        print ' />';
    }
}

__END__

###############################################################################
# Embedded POD for the PPD element.
###############################################################################

=head1 NAME

XML::Element - Base element class for XML elements

=head1 SYNOPSIS

 use XML::Element;
 @ISA = qw( XML::Element );

=head1 DESCRIPTION

Base element class for XML elements.  To be derived from to create your own
elements for use with the XML::Parser module.  Supports output of empty
elements using <.... />.

It is recommended that you use a
version of the XML::Parser module which includes support for Styles; by
deriving your own elements from XML::Element and using the 'Objects' style it
becomes B<much> easier to create your own parser.

=head1 METHODS

=over 4

=item output

Recursively outputs the structure of the XML document from this element on
down.

=back

=head1 LIMITATIONS

The C<XML::Element> module has no provisions for outputting processor
directives or external entities.  It only outputs child elements and any
character data which the elements may contain.

=head1 AUTHORS

Graham TerMarsch <grahamt@activestate.com>

=head1 HISTORY

v0.1 - Initial version

=head1 SEE ALSO

L<XML::Parser>

=cut

⌨️ 快捷键说明

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