NAME
    XML::Parser::Style::ETree - Parse xml to simple tree
VERSION
    Version 0.09
SYNOPSIS
        use XML::Parser;
        my $p = XML::Parser->new( Style => 'ETree' );
EXAMPLE
        
            
                first
                a
                mid
                b
                
                last
            
        
    will be
        {
            root => {
                '-at' => 'key',
                nest => {
                    '#text' => 'firstmidlast',
                    vv => '',
                    v => [
                        'a',
                        {
                            '-at' => 'a',
                            '#text' => 'b'
                        }
                    ]
                }
            }
        }
SPECIAL VARIABLES
    $TEXT{ATTR} [ = '-' ]
        Allow to set prefix for name of attribute nodes;
            # will be
            item => { -attr => 'value' };
            # with
            $TEXT{ATTR} = '+';
            # will be
            item => { '+attr' => 'value' };
    $TEXT{NODE} [ = '#text' ]
        Allow to set name for text nodes
- Text value# will be
            item => { sub => { -attr => "t" }, #text => 'Text value' };
            # with
            $TEXT{NODE} = '';
            # will be
            item => { sub => { -attr => "t" }, '' => 'Text value' };
    $TEXT{JOIN} [ = '' ]
        Allow to set join separator for text node, splitted by subnodes
- Test1Test2# will be
            item => { sub => '', #text => 'Test1Test2' };
            # with
            $TEXT{JOIN} = '+';
            # will be
            item => { sub => '', #text => 'Test1+Test2' };
    $TEXT{TRIM} [ = 1 ]
        Trim leading and trailing whitespace from text nodes
-   Test1    Test2  # will be
            item => { sub => '', #text => 'Test1Test2' };
            # with
            $TEXT{TRIM} = 0;
            # will be
            item => { sub => '', #text => '  Test1    Test2  ' };
    %FORCE_ARRAY
        Allow to force nodes to be represented always as arrays. If name is
        empty string, then ot means ALL
- Text value# will be
            item => { sub => { -attr => "t" }, #text => 'Text value' };
            # with
            $FORCE_ARRAY{sub} = 1;
            # will be
            item => { sub => [ { -attr => "t" } ], #text => 'Text value' };
            # with
            $FORCE_ARRAY{''} = 1;
            # will be
            item => [ { sub => [ { -attr => "t" } ], #text => 'Text value' } ];
    %FORCE_HASH
        Allow to force text-only nodes to be represented always as hashes.
        If name is empty string, then ot means ALL
- Text valueText value# will be
            item => { sub => 'Text value', any => 'Text value' };
            # with
            $FORCE_HASH{sub} = 1;
            # will be
            item => { sub => { #text => 'Text value' }, any => 'Text value' };
            # with
            $FORCE_HASH{''} = 1;
            # will be
            item => { sub => { #text => 'Text value' }, any => { #text => 'Text value' } };
    @STRIP_KEY
        Allow to strip something from tag names by regular expressions
            Text value
            # will be
            'a:item' => { 'b:sub' => 'Text value' };
            # with
            @STRIP_KEY = (qr/^[^:]+:/);
            # will be
            'item' => { 'sub' => 'Text value' };
SEE ALSO
    *   XML::Parser
        The parser itself
    *   XML::Parser::EasyTree
        Another EasyTree (I didn't found it before my first commit of this
        package because of missing '::Style' in it's name)
        But since XML::Parser::EasyTree and XML::Parser::Style::EasyTree use
        same style name, they're mutual exclusive ;(
        So, all the functionality was moved to ETree, and EasyTree was kept
        as a compatibility wrapper
    *   XML::Bare
        Very-very fast XML parser. Recommend to look
    *   XML::Hash::LX
        Similar behaviour, same output, but using XML::LibXML
AUTHOR
    Mons Anderson, 
BUGS
    None known
COPYRIGHT & LICENSE
    Copyright 2009 Mons Anderson
    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.