NAME

XML::Stream::Node - Functions to make building and parsing the tree easier to work with.

SYNOPSIS

Just a collection of functions that do not need to be in memory if you
choose one of the other methods of data storage.

This creates a hierarchy of Perl objects and provides various methods
to manipulate the structure of the tree.  It is much like the C library
libxml.

FORMAT

The result of parsing:

<foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>

would be:

[ tag:       foo
  att:       {}
  children:  [ tag:      head
               att:      {id=>"a"}
               children: [ tag:      "__xmlstream__:node:cdata"
                           children: "Hello "
                         ]
                         [ tag:      em
                           children: [ tag:      "__xmlstream__:node:cdata"
                                       children: "there"
                                     ]
                         ]
             ]
             [ tag:      bar
               children: [ tag:      "__xmlstream__:node:cdata"
                           children: "Howdy "
                         ]
                         [ tag:      ref
                         ]
             ]
             [ tag:      "__xmlstream__:node:cdata"
               children: "do"
             ]
]

METHODS

new()         - creates a new node.  If you specify tag, then the root
new(tag)        tag is set.  If you specify data, then cdata is added
new(tag,data)   to the node as well.  Returns the created node.

get_tag() - returns the root tag of the node.

set_tag(tag) - set the root tag of the node to tag.

add_child(node) - adds the specified node as a child to the current
add_child(tag)    node, or creates a new node with the specified tag
                  as the root node.  Returns the node added.

remove_child(node) - removes the child node from the current node.

add_cdata(string) - adds the string as cdata onto the current nodes
                    child list.

get_cdata() - returns all of the cdata children concatenated together
              into one string.

get_attrib(attrib) - returns the value of the attrib if it is valid,
                     or returns undef is attrib is not a real
                     attribute.

put_attrib(hash) - for each key/value pair specified, create an
                   attribute in the node.

remove_attrib(attrib) - remove the specified attribute from the node.

children() - return all of the children of the node in a list.

attrib() - returns a hash containing all of the attributes on this
           node.

AUTHOR

By Ryan Eatmon in June 2002 for http://jabber.org/

COPYRIGHT

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