POE::Filter::XML(3p)

NAME
POE::Filter::XML - XML parsing for the POE framework

VERSION
version 1.140700

SYNOPSIS
 use POE::Filter::XML;
 my $filter = POE::Filter::XML->new();

 my $wheel = POE::Wheel:ReadWrite->new(
        Filter          => $filter,
        InputEvent      => 'input_event',
 );

DESCRIPTION
POE::Filter::XML provides POE with a completely encapsulated XML parsing strategy for POE::Wheels that will be dealing with XML streams.

The parser is XML::LibXML

PUBLIC_ATTRIBUTES

  not_streaming
    is: ro, isa: Bool, default: false

Setting the not_streaming attribute to true via new() will put this filter into non-streaming mode, meaning that whole documents are parsed before nodes are returned. This is handy for XMLRPC or other short documents.

PRIVATE_ATTRIBUTES

  buffer
    is: ro, isa: ArrayRef, traits: Array

buffer holds the raw data to be parsed. Raw data should be split on network new lines before being added to the buffer. Access to this attribute is provided by the following methods:

    handles =>
    {
        has_buffer => 'count',
        all_buffer => 'elements',
        push_buffer => 'push',
        shift_buffer => 'shift',
        join_buffer => 'join',
    }

  callback
    is: ro, isa: CodeRef

callback holds the CodeRef to be call in the event that there is an exception generated while parsing content. By default it holds a CodeRef that simply calls Carp::confess.

  handler
    is: ro, isa: POE::Filter::XML::Handler

handler holds the SAX handler to be used for processing events from the parser. By default POE::Filter::XML::Handler is instantiated and used.

The "not_streaming" attribute is passed to the constructor of Handler.

  parser
    is: ro, isa: XML::LibXML

parser holds an instance of the XML::LibXML parser. The "handler" attribute is passed to the constructor of XML::LibXML.

PUBLIC_METHODS

  get_one_start
    (ArrayRef $raw?)

This method is part of the POE::Filter API. See "get_one_start" in POE::Filter for an explanation of its usage.

  get_one
    returns (ArrayRef)

This method is part of the POE::Filter API. See "get_one" in POE::Filter for an explanation of its usage.

  put
    (ArrayRef $nodes) returns (ArrayRef)

This method is part of the POE::Filter API. See "put" in POE::Filter for an explanation of its usage.

PROTECTED_METHODS

  reset
reset() is an internal method that gets called when either a stream_start(1) POE::Filter::XML::Node gets placed into the filter via "put", or when a stream_end(1) POE::Filter::XML::Node is pulled out of the queue of finished Nodes via "get_one". This facilitates automagical behavior when using the Filter within the XMPP protocol that requires many new stream initiations. This method is also called after every document when not in streaming mode. Useful for handling XMLRPC processing.

This method really should never be called outside of the Filter, but it is documented here in case the Filter is used outside of the POE context.

PRIVATE_METHODS

  BUILD
A BUILD method is provided to parse the initial buffer (if any was included when constructing the filter).

AUTHOR
Nicholas R. Perez <nperez@cpan.org>

COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Nicholas R. Perez <nperez@cpan.org>.

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