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_callback"
Subroutine for output processing of cdata.
Input argument is reference to array.
Default value is undef.
Example is similar as 'data_callback'.
* "data_callback"
Subroutine 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;
}
}
* "encoding"
Encoding for XML header.
Default is 'UTF-8'.
* "no_simple"
TODO not implemented.
Reference to array of tags, that can't by simple.
Default is [].
* "output_handler"
Handler for print output strings.
Must be a GLOB.
Default is undef.
* "preserved"
TODO not implemented.
Default value is reference to blank array.
* "set_indent"
Set indent flag.
Default is 0.
* "skip_bad_tags"
Skip bad tags.
Default value is 0.
* "xml_version"
XML 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.
"open_tags()"
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:
#
# data
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:
#
# řčěšřšč
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
AUTHOR
Michal Josef Špaček skim@cpan.org
LICENSE AND COPYRIGHT
© 2011-2020 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.03