NAME

XML::Grove - simple, non-validating XML objects

SYNOPSIS

use XML::Parser;
use XML::Parser::Grove;
use XML::Grove;

$parser = XML::Parser->new(Style => 'grove');
$grove = $parser->parsefile ($xml_file);

# All methods may also take a value to set the corresponding
# property

# XML::Grove
$root = $grove->root;            # the one element in `contents'
$entities = $grove->entities;    # an array of entity defs
$notations = $grove->notations;  # an array of notation defs
$contents = $grove->contents;    # may include PIs and comments

# XML::Grove::Element
$name = $element->name;
$attributes = $element->attributes;    # a hash
$contents = $element->contents;        # an array
$value = $element->attr ($attr_name);  # an array or scalar

# XML::Grove::Entity
$name = $entity->name;
$data = $entity->data;

# XML::Grove::PI
$target = $pi->target;
$data = $pi->data;

# XML::Grove::Comment
$data = $comment->data;

DESCRIPTION

XML::Grove provides simple objects for parsed XML documents. The objects may be modified but no checking is performed by XML::Grove. XML::Grove objects do not include parsing information such as character positions or type of tags used.

The `contents' of an XML::Grove contains the root element possibly intermixed with processing instructions (PIs) or comments.

The `contents' of an XML::Grove::Element may contain elements (XML::Grove::Element), character data (Perl scalars), entity references (TBD, classes of XML::Grove::Entity), character references (TBD), processing instructions (XML::Grove::PI), and comments (XML::Grove::Comment).

The `attributes' of an XML::Grove::Element is an hash keyed by the attribute name, each attribute is either an array that may contain Perl scalars and entity references, or simply a Perl scalar.

To Be Determined (TBD): XML::Grove will be expanded to support additional objects and features of XML::Parser and SGML::SP::Generic as they become available. XML::Grove is intended to remain a simple module, other modules will be used to, for example, provide more parsing info, perform validation while modifying, or be able to write the same file that was read. XML::Grove and SGML::Grove should be nearly interchangeable.

AUTHOR

Ken MacLeod, ken@bitsko.slc.ut.us

SEE ALSO

perl(1), XML::Parser(3), XML::Parser::Grove(3).

Extensible Markup Language (XML) <http://www.w3c.org/XML>