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

- NAME
- SYNOPSIS
- FORMAT
- METHODS
- AUTHOR
- COPYRIGHT

# 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,cdata)   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
     add_child(tag,cdata)   as the root node.  Returns the node added.

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

     remove_cdata() - removes all of the cdata children 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.

     add_raw_xml(string,[string,...]) - directly add a string into the XML
                                        packet as the last child, with no
                                        translation.

     get_raw_xml() - return all of the XML in a single string, undef if there
                     is no raw XML to include.

     remove_raw_xml() - remove all raw XML strings.

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

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

     copy() - return a recursive copy of the node.

     XPath(path) - run XML::Stream::XPath on this node.

     XPathCheck(path) - run XML::Stream::XPath on this node and return 1 or 0
                        to see if it matches or not.

     GetXML() - return the node in XML string form.

# AUTHOR

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

Currently maintained by Darian Anthony Patrick.

# COPYRIGHT

Copyright (C) 1998-2004 Jabber Software Foundation http://jabber.org/

This module licensed under the LGPL, version 2.1.

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