XML::Elemental - simplistic and perlish handling of XML data.


 use XML::Elemental; 
 my $p = XML::Elemental->parser; 
 my $xml = '<foo>There is a <helloworld/> in my soup.</foo>';
 my $tree = $p->parse_string($xml);


XML::Elemental is a SAX-based package for easily parsing XML documents into a more native and mostly object-oriented perl form.

The development of this package grew out of the desire for something more object-oriented then XML::Simple and was more simplistic and perlish then the various standard XML API modules such as XML::DOM. Easier installation of modules was also a contributing factor.

Original this package began as a style plugin to XML::Parser. That proved to be too limiting that it was expanded. With the release of version 2.0 the package was refactored to take advantage of any parser supporting SAX that includes the pure perl option that ships with XML::SAX.



Instantiates and returns a SAX2 parser using XML::Elemental::SAXHandler as its handler and thereby inherits all the methods found in XML::SAX::Base.

The parser method can optionally take a hash reference containing SAX options. The hash reference can also include document, element and character class names to use during processing. The following keys and their defaults are used:

    KEY         DEFAULT
    Document    XML::Elemental::Document
    Element     XML::Elemental::Element
    Characters  XML::Elemental::Characters

Any class that supports the same method signatures as the XML::Elemental default classes can be used.


XML::SAX, Scalar::Util


XML::Simple, XML::DOM, XML::Handler::Trees


The software is released under the Artistic License. The terms of the Artistic License are described at


Except where otherwise noted, XML::Elemental is Copyright 2004-2008, Timothy Appnel, All rights reserved.

3 POD Errors

The following errors were encountered while parsing the POD:

Around line 26:

=begin without a target?

Around line 82:

You forgot a '=back' before '=head1'

Around line 104:

'=end' without a target?