XML-Grove

 view release on metacpan or  search on metacpan

lib/XML/Grove.pm  view on Meta::CPAN

    }
}

sub rootpath {
    return;
}

package XML::Grove::Element;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'element';

package XML::Grove::PI;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'pi';

package XML::Grove::Entity::External;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'external_entity';

package XML::Grove::Entity::SubDoc;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'subdoc_entity';

package XML::Grove::Entity::SGML;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'sgml_entity';

package XML::Grove::Entity;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'entity';

package XML::Grove::Notation;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'notation';

package XML::Grove::Comment;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'comment';

package XML::Grove::SubDoc;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'subdoc';

package XML::Grove::Characters;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'characters';

package XML::Grove::CData;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'cdata';

package XML::Grove::ElementDecl;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'element_decl';

package XML::Grove::AttListDecl;
use vars qw{ @ISA $type_name };
@ISA = qw{XML::Grove};
$type_name = 'attlist_decl';

1;

__END__

=head1 NAME

XML::Grove - Perl-style XML objects

=head1 SYNOPSIS

 use XML::Grove;

 # Basic parsing and grove building
 use XML::Grove::Builder;
 use XML::Parser::PerlSAX;
 $grove_builder = XML::Grove::Builder->new;
 $parser = XML::Parser::PerlSAX->new ( Handler => $grove_builder );
 $document = $parser->parse ( Source => { SystemId => 'filename' } );

 # Creating new objects
 $document = XML::Grove::Document->new ( Contents => [ ] );
 $element = XML::Grove::Element->new ( Name => 'tag',
                                       Attributes => { },
				       Contents => [ ] );

 # Accessing XML objects
 $tag_name = $element->{Name};
 $contents = $element->{Contents};
 $parent = $element->{Parent};
 $characters->{Data} = 'XML is fun!';

=head1 DESCRIPTION

XML::Grove is a tree-based object model for accessing the information
set of parsed or stored XML, HTML, or SGML instances.  XML::Grove
objects are Perl hashes and arrays where you access the properties of
the objects using normal Perl syntax:

  $text = $characters->{Data};

=head2 How To Create a Grove

There are several ways for groves to come into being, they can be read
from a file or string using a parser and a grove builder, they can be
created by your Perl code using the `C<new()>' methods of
XML::Grove::Objects, or databases or other sources can act as groves.

The most common way to build groves is using a parser and a grove
builder.  The parser is the package that reads the characters of an



( run in 0.981 second using v1.01-cache-2.11-cpan-39bf76dae61 )