NAME

XML::Parser::Lite::Tree - Lightweight XML tree builder

SYNOPSIS

use XML::Parser::Lite::Tree;

my $tree_parser = XML::Parser::Lite::Tree::instance();
my $tree = $tree_parser->parse($xml_data);

  OR

my $tree = XML::Parser::Lite::Tree::instance()->parse($xml_data);

DESCRIPTION

This is a singleton class for parsing XML into a tree structure. How does this differ from other XML tree generators? By using XML::Parser::Lite, which is a pure perl XML parser. Using this module you can tree-ify simple XML without having to compile any C.

For example, the following XML:

<foo woo="yay"><bar a="b" c="d" />hoopla</foo>

Parses into the following tree:

  'children' => [
                  {
                    'children' => [
                                    {
                                      'children' => [],
                                      'attributes' => {
                                                        'a' => 'b',
                                                        'c' => 'd'
                                                      },
                                      'type' => 'element',
                                      'name' => 'bar'
                                    },
                                    {
                                      'content' => 'hoopla',
                                      'type' => 'text'
                                    }
                                  ],
                    'attributes' => {
                                      'woo' => 'yay'
                                    },
                    'type' => 'element',
                    'name' => 'foo'
                  }
                ],
  'type' => 'root'
};

Each node contains a type key, one of root, element and text. root is the document root, and only contains an array ref children. element represents a normal tag, and contains an array ref children, a hash ref attributes and a string name. text nodes contain only a content string.

METHODS

instance()

Returns an instance of the tree parser.

new( options... )

Creates a new parser. Valid options include process_ns to process namespaces.

parse($xml)

Parses the xml in $xml and returns the tree as a hash ref.

AUTHOR

Copyright (C) 2004-2008, Cal Henderson, <cal@iamcal.com>

SEE ALSO

XML::Parser::Lite.