|
8.29.43 DomNode->append_child()
Ajoute un nouveau fils à la fin des enfants
[ Exemples avec domnode_append_child ] CVS uniquement
DOMNode
DOMNode
append_child (
DOMNode
newnode
)
Cette fonction ajoute un fils à une liste existante de fils ou crée une
nouvelle liste de fils.
Retourne le noeud ajouté en cas de succès ou
FALSE
en cas d'échec.
| Version |
Description |
| 4.3.0 |
Vous n'êtes plus autorisé d'insérer un noeud à partir d'un autre
document.
|
| 4.3.0 |
Avant PHP 4.3.0, le nouveau fils est dupliqué avant d'être ajouté.
Par conséquent, le nouveau fils est une copie qui peut être modifiée
sans altérer le noeud utilisé dans cette fonction. Si le noeud passé
a des fils, ils seront aussi dupliqués, ce qui rend cette fonction
pratique pour copier des documents XML complexes. La valeur retournée
est le noeud fils ajouté. Si vous voulez apporter des modifications
au noeud fils, vous devez utiliser le noeud retourné.
|
| 4.3.0 et 4.3.1 |
Le nouveau fils
newnode
est d'abord déconnecté
de son contexte, s'il est déjà fils d'un DomNode. Le noeud est donc
déplacé et n'est plus copié. Ceci est le comportement qui correspond
aux spécifications W3C. Si vous avez besoin de l'ancien comportement,
utilisez DomNode->clone_node avant
d'ajouter.
|
| 4.3.2 |
Le nouveau fils
newnode
est d'abord déconnecté
de son contexte, s'il est déjà dans l'arbre. Les mêmes règles
s'appliquent.
|
L'exemple suivant ajoute un nouveau noeud dans un document, et modifie son
attribut
align
à
left
.
| Ajouter un noeud fils avec dom xml |
<?php $doc = domxml_new_doc("1.0"); $node = $doc->create_element("para"); $newnode = $doc->append_child($node); $newnode->set_attribute("align", "left"); ?>
|
L'exemple ci-dessus peut être aussi écrit comme ceci :
| Ajouter un noeud fils avec dom xml (méthode 2) |
<?php $doc = domxml_new_doc("1.0"); $node = $doc->create_element("para"); $node->set_attribute("align", "left"); $newnode = $doc->append_child($node); ?>
|
Un exemple plus complexe est celui ci-dessous. Il commence par rechercher
un élément, le duplique avec ses fils, et l'ajoute comme frère.
Finalement, un nouvel attribut est ajouté, et le document complet est publié.
| Ajouter un noeud fils avec DOM XML (exemple 3) |
<?php include("exemple.inc");
if(!$dom = domxml_open_mem($xmlstr)) { echo "Erreur lors de l'analyse du 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");
$xmlfile = $dom->dump_mem(); echo htmlentities($xmlfile); ?>
|
L'exemple ci-dessus peut aussi être réalisé avec la fonction
DomNode->insert_before au lieu de
DomNode->append_child .
Vous devriez utiliser DOMNode->appendChild() .
|