++ed by:

2 non-PAUSE users.

Andrea Guzzo


XML::TinyXML::Node - Tinyxml Node object


      use XML::TinyXML;
      # first obtain an xml context:
      $xml = XML::TinyXML->new("rootnode", "somevalue", { attr1 => v1, attr2 => v2 });
      # We create a node and later attach it to a parent one doing:
      $child_node = XML::TinyXML::Node->new("child", "somevalue");
      ... [ some code ] ...
      # or you can do everything in one go using :
      $parent_node->addChildNode("child", "somevalue", { attr1 => v1, attr2 => v2 });
      # the new node will be implicitly created within the addChildNode() method
      # or you can do the other way round, creating the instance of the new childnode 
      # and passing the parent to the constructor which will take care of calling addChildNode()
      $child_node = XML::TinyXML::Node->new("child", "somevalue", $attrs, $parent_node);
      # we can later retrive the "child" node by calling:
      $child_node = $xml->getNode("/nodelabel/child");
      # and possibly modify its value by doing:
      # at this point , calling :
      print $xml->dump;
      # would produce the following xml
      # <?xml version="1.0"?>
      # <rootnode>
      #   <child>othervalue</child>
      # </rootnode>


Node representation for the TinyXML API


  • _node

    Reference to the underlying XmlNodePtr object (which is a binding to the XmlNode C structure)


  • new ($entity, $value, $parent, %attrs)

    Creates a new XML::TinyXML::Node object.

    $entity can be either a scalar or an XmlNodePtr object. - if it's a scalar , it will be intepreted as the entity name - if it's an XmlNodePtr, it will be used as the underlying object and will be incapsulated in the newly created XML::TinyXML::Node object.

    $value is the optianal string value of the newly created node (the "content" of the xml node)

    if $parent isn't undef the newly created node will be directly attached to the specified parent node. $parent can be either a XML::TinyXML::Node object or a XmlNodePtr one.

    %attrs is an optional hash specifying attributes for the newly created xml node

    Returns a valid XML::TinyXML::Node object

  • cleanAttributes ()

    Removes all node attributes

  • removeAttribute ($index)

    Removes attribute at $index

  • loadHash ($hashref, [ $childname ])

    Loads an hashref and represent it as an xml subbranch.


    if $childname is specified, newly created childnodes will use it as their name

  • toHash ([ $parent ])

    Export the xml structure into an hashref (formerly the inverse of loadHash)

    if $parent is specified the resulting structure will be connected to $parent. (NOTE: $parent MUST obviously be an hashref)

  • updateAttributes (%attrs)

    Updates all attributes.

    This method simply clean all current attributes and replace them with the ones specified in the %attrs hash

  • addAttributes (%attrs)

    Add attributes.

  • name ([$newname])

    Set/Get the name of a node. if $newname is specified it will be used as the new name, otherwise the current name is returned

  • value ([$newval])

    Set/Get the vlue of a node. if $newval is specified it will be used as the new value, otherwise the current value is returned

  • path ()

    Get the absolute path of a node.

  • getAttribute ($index)

    Returns the attribute (XML::TinyXML::NodeAttribute) at index $index

  • getAttributes ()

    Returns all attribute (array/arrayref of XML::TinyXML::NodeAttribute objects) for this node

  • attributes ()

    Returns an hashref copy of all attributes in this node.

    The returned hashref must be considered read-only, any change won't be reflected in the underlying document.

    If you want to modify the name or the value of an attribute, use the XML::TinyXML::NodeAttribute api by calling getAttributes() or getAttribute() instead.

  • getChildNode ($index)

    Returns child node at $index. The returned node will be a Xml::TinyXML::Node object

  • getChildNodeByName ($name)

    Returns the first child node whose name matches $name. The returned node will be a Xml::TinyXML::Node object

  • countChildren ()

    Returns the actual number of children

  • children ()

    Returns an array containing all actual children in the form of Xml::TinyXML::Node objects

  • addChildNode ($child [, $value [, $attrs ] ])

    Adds a new child node.

    If $child is an XML::TinyXML::Node object , this will be attached to our children list

    If $child is a string (not a reference) a new node will be created passing $child and the optional $value and $attrs arguments to the constructor and than attached to the children list

  • removeChildNode ($index)

    Removes child node at provided $index.

  • removeAllChildren

    Removes all children from this node

  • parent ()

    Read-Only method which returns the parent node in the form of a XML::TinyXML::Node object.

  • nextSibling ()

    Returns the next sibling of this node (if any), undef otherwise.

  • prevSibling ()

    Returns the previous sibling of this node (if any), undef otherwise.

  • type ()

    Returns the "type" of a XML::TinyXML::Node object. type can be : NODE COMMENT CDATA




xant, <xant@cpan.org>


Copyright (C) 2008-2010 by xant

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.