Provided by: libpoe-filter-xml-perl_1.140700-1_all bug

NAME

       POE::Filter::XML::Node - A XML::LibXML::Element subclass that adds streaming semantics

VERSION

       version 1.140700

SYNOPSIS

           use POE::Filter::XML::Node;

           my $node = POE::Filter::XML::Node->new('iq');

           $node->setAttributes(
               ['to', 'foo@other',
               'from', 'bar@other',
               'type', 'get']
           );

           my $query = $node->addNewChild('jabber:iq:foo', 'query');

           $query->appendTextChild('foo_tag', 'bar');

           say $node->toString();

           --

           (newlines and tabs for example only)

           <iq to='foo@other' from='bar@other' type='get'>
               <query xmlns='jabber:iq:foo'>
                   <foo_tag>bar</foo_tag>
               </query>
           </iq>

DESCRIPTION

       POE::Filter::XML::Node is a XML::LibXML::Element subclass that aims to provide a few extra
       convenience methods and light integration into a streaming context.

       This module can be used to create arbitrarily complex XML data structures that know how to
       stringify themselves.

PUBLIC_ATTRIBUTES

   stream_[start|end]
           is: ro, isa: Bool, default: false

       These two attributes define behaviors to toString() for the node. In the case of
       stream_start, this means dropping all children and merely leaving the tag unterminated
       (eg. <start>). For stream_end, it will drop any children and treat the tag like a
       terminator (eg. </end>).

       Each attribute has a private writer ('_set_stream_[start|end]') if it necessary to
       manipulate these attributes post construction.

PUBLIC_METHODS

   override cloneNode
           (Bool $deep)

       cloneNode is overridden to carry forward the stream_[end|start] attributes

   override toString
           (Bool $formatted)

       toString was overridden to provide special stringification semantics for when stream_start
       or stream_end are boolean true.

   setAttributes
           (ArrayRef $array_of_tuples)

       setAttributes() accepts a single argument: an array reference. Basically you pair up all
       the attributes you want to be into the node (ie. [attrib, value]) and this method will
       process them using setAttribute(). This is just a convenience method.

       If one of the attributes is 'xmlns', setNamespace() will be called with the value used as
       the $nsURI argument, with no prefix, and not activated.

        eg.
        ['xmlns', 'http://foo']
               |
               V
        setNamespace($value, '', 0)
               |
               V
        <node xmlns="http://foo"/>

   getAttributes
           returns (HashRef)

       This method returns all of the attribute nodes on the Element (filtering out namespace
       declarations) as a HashRef.

   getFirstChildByTagName(Str $name)
           returns (Maybe[POE::Filter::XML::Node])

       This is a convenience method that basically does:
        (getChildrenByTagName($name))[0]

   getChildrenHash
           returns (HashRef)

       getChildrenHash() returns a hash reference to all the children of that node.  Each key in
       the hash will be node name, and each value will be an array reference with all of the
       children with that name.

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.