XML::Parser::Lite::Tree.3pm

Langue: en

Autres versions - même langue

Version: 2009-09-15 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

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.