Skip to content

kentnl/IO-Async-XMLStream-SAXReader

Repository files navigation

NAME

IO::Async::XMLStream::SAXReader - Dispatch SAX events from an XML stream.

VERSION

version 0.001003

SYNOPSIS

use IO::Async::XMLStream::SAXReader;
use IO::Async::Loop;

my $loop = IO::Async::Loop->new();

my $sax  = IO::Async::XMLStream::SAXReader->new(
    handle => $SOME_IO_HANDLE,
    on_start_document => sub {
        my ( $saxreader, @args ) = @_;
        ...
    },
    on_start_element  => sub {
        my ( $saxreader, @args ) = @_;
        ...
    },
    on_end_document => sub {
        $loop->stop;
    },
);

$loop->add($sax);
$loop->run();

This sub-classes IO::Async::Stream to provide a streaming SAX parser.

For the individual SAX events that can be listened for, see XML::SAX::Base.

All are prefixed with the on_ prefix as constructor arguments.

Alternatively, if you already have an XML::SAX handler class you wish to reuse:

use IO::Async::XMLStream::SAXReader;
use IO::Async::Loop;

my $loop = IO::Async::Loop->new();

my $sax  = IO::Async::XMLStream::SAXReader->new(
    handle => $SOME_IO_HANDLE,
    sax_handler => YourClass->new();
    on_read_eof => sub {
        $loop->stop;
    },
);

$loop->add($sax);
$loop->run();

AUTHOR

Kent Fredric kentnl@cpan.org

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric kentfredric@gmail.com.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

About

Dispatch SAX events from an XML stream

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages