NAME
XML::Parser::Lite::Tree - Lightweight XML tree builder
SYNOPSIS
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>