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.