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.