NAME
Tags::Output::LibXML - Printing 'Tags' structure by LibXML library.
SYNOPSIS
use Tags::Output::LibXML;
my $tags = Tags::Output::LibXML->new(%parameters);
$tags->put(['b', 'element']);
my @open_tags = $tags->open_tags;
$tags->finalize;
$tags->flush($reset_flag);
$tags->reset;
DESCRIPTION
This class is only for XML structures.
METHODS
new(%parameters)- 
Constructor.cdata_callbackSubroutine for output processing of cdata. Input argument is reference to array. Default value is undef. Example is similar as 'data_callback'.data_callbackSubroutine for output processing of data, cdata and raw data. Input argument is reference to array. Default value is undef. Example: 'data_callback' => sub { my $data_ar = shift; foreach my $data (@{$data_ar}) { # Some process. $data =~ s/^\s*//ms; } }encodingEncoding for XML header. Default is 'UTF-8'.no_simpleTODO not implemented. Reference to array of tags, that can't by simple. Default is [].output_handlerHandler for print output strings. Must be a GLOB. Default is undef.preservedTODO not implemented. Default value is reference to blank array.set_indentSet indent flag. Default is 0.skip_bad_tagsSkip bad tags. Default value is 0.xml_versionXML version for XML header. Default is "1.1".
 finalize()- 
Finalize Tags output. Automaticly puts end of all opened tags. Returns undef. flush($reset_flag)- 
Flush tags in object. If defined 'output_handler' flush to its. Or return code. If enabled $reset_flag, then resets internal variables via reset method. - 
Return array of opened tags. put(@data)- 
Put tags code in tags format. Returns undef. reset()- 
Resets internal variables. Returns undef. 
ERRORS
TODO
EXAMPLE1
 use strict;
 use warnings;
 use Tags::Output::LibXML;
 # Object.
 my $tags = Tags::Output::LibXML->new;
 # Put data.
 $tags->put(
         ['b', 'text'],
	 ['d', 'data'],
	 ['e', 'text'],
 );
 # Print.
 print $tags->flush."\n";
 # Output:
 # <?xml version="1.1" encoding="UTF-8"?>
 # <text>data</text>
EXAMPLE2
 use strict;
 use warnings;
 use Encode;
 use Tags::Output::LibXML;
 # Object.
 my $tags = Tags::Output::LibXML->new(
         'data_callback' => sub {
	         my $data_ar = shift;
		 foreach my $data (@{$data_ar}) {
		         $data = encode_utf8($data);
		 }
                 return;
	 },
 );
 # Data in characters.
 my $data = decode_utf8('řčěšřšč');
 # Put data.
 $tags->put(
         ['b', 'text'],
	 ['d', $data],
	 ['e', 'text'],
 );
 # Print.
 print $tags->flush."\n";
 # Output:
 # <?xml version="1.1" encoding="UTF-8"?>
 # <text>řčěšřšč</text>
DEPENDENCIES
Error::Pure, Readonly, Tags::Output, XML::LibXML.
SEE ALSO
- Tags
 - 
Structure oriented SGML/XML/HTML/etc. elements manipulation.
 - Tags::Output
 - 
Base class for Tags::Output::*.
 - Task::Tags
 - 
Install the Tags modules.
 
REPOSITORY
https://github.com/michal-josef-spacek/Tags-Output-LibXML
AUTHOR
Michal Josef Špaček skim@cpan.org
LICENSE AND COPYRIGHT
© 2011-2020 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.03