NAME
XML::Parser::Style::ETree - Parse xml to simple tree
VERSION
Version 0.06
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.