Mac-PropertyList-SAX
view release on metacpan or search on metacpan
=head1 NAME
Mac::PropertyList::SAX - work with Mac plists at a low level, fast
=cut
=head1 SYNOPSIS
See L<Mac::PropertyList|Mac::PropertyList>
=head1 DESCRIPTION
L<Mac::PropertyList|Mac::PropertyList> is useful, but very slow on large files
because it does XML parsing itself, intead of handing it off to a dedicated
parser. This module uses L<XML::SAX::ParserFactory|XML::SAX::ParserFactory> to
select a parser capable of doing the heavy lifting, reducing parsing time on
large files by a factor of 30 or more.
This module does not replace L<Mac::PropertyList|Mac::PropertyList>: it depends
on it for some package definitions and plist printing routines. You should,
however, be able to replace all C<use Mac::PropertyList>
lines with C<use Mac::PropertyList::SAX>, without changing anything else, and
notice an immediate improvement in performance on large input files.
Performance will depend largely on the parser that
L<XML::SAX::ParserFactory|XML::SAX::ParserFactory> selects for you. By default,
L<XML::SAX::Expat|XML::SAX::Expat> is used; to change the parser used, set the
environment variable C<MAC_PROPERTYLIST_SAX_PARSER> to a value accepted by
$XML::SAX::ParserPackage from
L<XML::SAX::ParserFactory|XML::SAX::ParserFactory> (or set
C<$XML::SAX::ParserPackage> directly).
=cut
=head1 CLASS VARIABLES
Class scoped variables that control the packages settings.
=over 4
=item ENCODE_ENTITIES
Allows the XHTML encoding of the data to be turned off. Default = C<1>
=item ENCODE_UNSAFE_CHARS
A Perl character class definition containing the only characters to be
XHTML encoded. See HTML::Entities::encode_entities for description of
the $unsafe_chars parameter. Default = C<undef>
=cut
=item OLD_BEHAVIOR
Restores the old behavior of double encoding output data. Default = C<0>
=cut
=item XML::SAX::ParserPackage
Parser to use. Can also be set with environment variable
C<MAC_PROPERTYLIST_SAX_PARSER>. Default = C<"XML::SAX::Expat">
=cut
=back
=head1 EXPORTS
By default, no functions are exported. Specify individual functions to export
as usual, or use the tags ':all', ':create', and ':parse' for the appropriate
sets of functions (':create' includes the create* functions as well as
plist_as_string; ':parse' includes the parse* functions).
=head1 FUNCTIONS
=over 4
=item parse_plist_file
See L<Mac::PropertyList/parse_plist_file>
=cut
=item parse_plist_fh
See L<Mac::PropertyList/parse_plist_fh>
=cut
=item parse_plist
See L<Mac::PropertyList/parse_plist>
=cut
=item parse_plist_string
An alias to parse_plist, provided for better regularity compared to Perl SAX.
=cut
( run in 0.628 second using v1.01-cache-2.11-cpan-39bf76dae61 )