XML::Grove 0.04 Perl Module

The XML::Grove Perl Module defines a set of objects representing XML

XML::Grove includes modules for accessing the XML objects, converting
XML content to strings, and writing XML.

XML::Grove is making it's way to CPAN at:


and is mirrored at:

    http://bitsko.slc.ut.us/~ken/perl-xml/  (slow serial line)

The last link also includes HTML copies of the PODs and additional

XML::Grove requires XML::Parser from


Changes since 0.03:

    * Added support for Clark Cooper's updates to XML::Parser
    * several bug fixes

There is a major, but simple to fix, backward incompatible change
using the new XML::Parser.  Prior to 0.04, you would parse the XML
document and get the grove using this code:

    $grove = $parser->{Grove};

With the new XML::Parser, the grove is returned from `parsefile',
these lines should be changed to:

    $grove = $parser->parsefile($file_name);

The old method is still required with the original XML::Parser 0.0.

Ken MacLeod
Email: ken@bitsko.slc.ut.us

And from the README:

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

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.