   #PHP Manual DOM XML functions DomNode->add_namespace
   DomNode->append_sibling

   PHP Manual
   Prev  Next
   ______________________________________________________________________

                             DomNode->append_child

   (no version information, might be only in CVS)
   DomNode->append_child --  Adds new child at the end of the children

Description

   object DomNode->append_child ( object newnode)

   This functions appends a child to an existing list of children or
   creates a new list of children. The child can be created with e.g.
   domdocument_create_element(), domdocument_create_text() etc. or simply
   by using any other node.

   (PHP < 4.3) Before a new child is appended it is first duplicated.
   Therefore the new child is a completely new copy which can be modified
   without changing the node which was passed to this function. If the
   node passed has children itself, they will be duplicated as well,
   which makes it quite easy to duplicate large parts of an XML document.
   The return value is the appended child. If you plan to do further
   modifications on the appended child you must use the returned node.

   (PHP 4.3.0/4.3.1) The new child newnode is first unlinked from its
   existing context, if it's already a child of DomNode. Therefore the
   node is moved and not copies anymore.

   (PHP >= 4.3.2) The new child newnode is first unlinked from its
   existing context, if it's already in the tree. Therefore the node is
   moved and not copied. This is the behaviour according to the W3C
   specifications. If you want to duplicate large parts of an XML
   document, use DomNode->clone_node() before appending.

   The following example will add a new element node to a fresh document
   and sets the attribute "align" to "left".

   Example 1. Adding a child
   <?php
   $doc = domxml_new_doc("1.0");
   $node = $doc->create_element("para");
   $newnode = $doc->append_child($node);
   $newnode->set_attribute("align", "left");
   ?>
   The above example could also be written as the following:

   Example 2. Adding a child
   <?php
   $doc = domxml_new_doc("1.0");
   $node = $doc->create_element("para");
   $node->set_attribute("align", "left");
   $newnode = $doc->append_child($node);
   ?>
   A more complex example is the one below. It first searches for a
   certain element, duplicates it including its children and adds it as a
   sibling. Finally a new attribute is added to one of the children of
   the new sibling and the whole document is dumped.

   Example 3. Adding a child
   <?php
   include("example.inc");
   if (!$dom = domxml_open_mem($xmlstr)) {
     echo "Error while parsing the document\n";
     exit;
   }
   $elements = $dom->get_elements_by_tagname("informaltable");
   print_r($elements);
   $element = $elements[0];
   $parent = $element->parent_node();
   $newnode = $parent->append_child($element);
   $children = $newnode->children();
   $attr = $children[1]->set_attribute("align", "left");
   echo "<pre>";
   $xmlfile = $dom->dump_mem();
   echo htmlentities($xmlfile);
   echo "</pre>";
   ?>
   The above example could also be done with domnode_insert_before()
   instead of domnode_append_child().

   See also domnode_insert_before(), domnode_clone_node().
   ______________________________________________________________________

   Prev                   Home                    Next
   DomNode->add_namespace  Up  DomNode->append_sibling
