PHP Doku:: Adds new child at the end of the children - domnode.appendchild.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzXML-ManipulationDocument Object ModelThe DOMNode classDOMNode::appendChild

Ein Service von Reinhard Neidl - Webprogrammierung.

The DOMNode class

<<The DOMNode class



(PHP 5)

DOMNode::appendChild Adds new child at the end of the children


DOMNode DOMNode::appendChild ( DOMNode $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::createElement(), DOMDocument::createTextNode() etc. or simply by using any other node.



The appended child.


The node added.



Raised if this node is readonly or if the previous parent of the node being inserted is readonly.


Raised if this node is of a type that does not allow children of the type of the newnode node, or if the node to append is one of this node's ancestors or this node itself.


Raised if newnode was created from a different document than the one that created this node.


The following example will add a new element node to a fresh document.

Beispiel #1 Adding a child


= new DOMDocument;

$node $doc->createElement("para");
$newnode $doc->appendChild($node);


Siehe auch

3 BenutzerBeiträge:
- Beiträge aktualisieren...
frame at dynamiccreated dot de
1.12.2010 13:14
Aware dealing with DOMNodeList and appendChild() on the same Node.

If you want to replace only the children not the DOMElement itself you probably foreach childNodes-property or get the DOMElements with a for-loop and item()-method of the DOMNodeList.

You will fail if you not clone the received single DOMElement. Actually the count of the DOMNodelist will be decreased on appendChild count but appendChild seems to refer to the old Nodelist and nothing visible will happen. Cloning will help.
krisdover at hotmail dot com
1.06.2008 5:49
What's not mentioned here is that DOMNode::appendChild() can also be used to move an existing node to another part of the DOMDocument, e.g.

= new DOMDocument();
$bar = $doc->documentElement->firstChild;
$foo = $doc->documentElement->lastChild;

This produces:

<?xml version="1.0"?>

Note that the nodes "<foo/>" and "<bar/>" were siblings, i.e. the first and last child of "<foobar>" but using appendChild() we were able to move "<bar/>" so that it is a child of "<foo/>".

This saves you the trouble of doing a DOMNode::removeChild($bar) to remove "<bar/>" before appending it as a child of "<foo/>".

Kris Dover
jrtayloriv at gmail dot com
30.03.2008 14:56
If you want to create nested DOM elements:

= new DOMDocument();
$foo = $doc->createElement("foo");

$bar = $doc->createElement("bar");

$bazz = $doc->createElement("bazz");


Is equivalent to:


PHP Powered Diese Seite bei
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)