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