downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DOMNode::cloneNode> <DOMNode
Last updated: Fri, 14 Aug 2009

view this page in

DOMNode::appendChild

(PHP 5)

DOMNode::appendChild Ajoute un nouveau fils à la fin des fils

Description

DOMNode DOMNode::appendChild ( DOMNode $newnode )

Cette fonction ajoute un fils à une liste de fils existante ou crée une nouvelle liste de fils. Le fils peut être créé avec, e.g. DOMDocument::createElement, DOMDocument::createTextNode, etc. ou simplement en utilisant tout autre noeud.

Liste de paramètres

newnode

Le fils à ajouter.

Valeurs de retour

Le noeud ajouté.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent le noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le noeud est d'un type qui n'autorise pas d'enfant du type du noeud newnode , ou si le noeud à ajouter est un des noeuds ancêtres ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

Exemples

L'exemple suivant ajoutera un nouveau noeud à un document nouveau.

Exemple #1 Ajout d'un fils

<?php

$doc 
= new DOMDocument;

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

echo 
$doc->saveXML();
?>

Voir aussi



add a note add a note User Contributed Notes
DOMNode::appendChild
krisdover at hotmail dot com
01-Jun-2008 03: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.

<?php
$doc
= new DOMDocument();
$doc->loadXML("<foobar><bar/><foo/></foobar>");
$bar = $doc->documentElement->firstChild;
$foo = $doc->documentElement->lastChild;
$foo->appendChild($bar);
print
$doc->saveXML();
?>

This produces:

<?xml version="1.0"?>
<foobar><foo><bar/></foo></foobar>

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-Mar-2008 12:56
If you want to create nested DOM elements:

<?php
    $doc
= new DOMDocument();
   
   
$foo = $doc->createElement("foo");
   
$doc->appendChild($foo);

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

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

    echo
$doc->saveXML();
?>

Is equivalent to:

<foo>
  <bar></bar>
  <bazz></bazz>
</foo>

DOMNode::cloneNode> <DOMNode
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites