NAME

XML::Filter::Cache - a SAX2 recorder/playback mechanism

SYNOPSIS

use XML::SAX;
use XML::Filter::Cache;
use XML::SAX::Writer;

my $writer = XML::SAX::Writer->new;
my $filter = XML::Filter::Cache->new(
    Handler => $writer,
    Key => "foo.xml",
);
my $parser = XML::SAX::ParserFactory->new(Handler => $filter);

$parser->parse_uri("foo.xml"); # caches

$filter->playback; # un-caches

DESCRIPTION

This is a very simple filter module for SAX2 events. By default it caches events into a big binary file on disk (the cache files are generally much larger than the original XML at the moment, but I'll work on that), but the storage backend is pluggable. It uses Storable to do the freeze/thaw thing, and at the moment this is not pluggin replaceable, simply because there's no better tool for the task at hand.

There's only one method you need to remember: playback, which will play the SAX events to the Handler from the cache.

The Key parameter to new() is optional - however if you do not supply it, your parser must call set_document_locator so that XML::Filter::Cache can pick up a Key from the SystemId value.

LICENSE

This is free software, you may use it under the same terms as Perl itself.

AUTHOR

Matt Sergeant, matt@sergeant.org. Please send all bugs to rt.cpan.org, either via the web interface, or by emailing bug-XML-Filter-Cache@rt.cpan.org

SEE ALSO

XML::Filter::Cache::File