
(No version information available, might be only in CVS)
DomNode->append_child â Ajoute un nouveau fils Ă la fin des enfants
Cette fonction ajoute un fils à une liste existante de fils ou crée une nouvelle liste de fils.
Le noeud qui sera ajoutĂ©. Il peut ĂȘtre créé avec DomDocument->create_element, DomDocument->create_text_node etc. ou simplement en utilisant un autre noeud.
Note: Vous ne pouvez pas ajouter un DOMAttribute en utilisant cette méthode. Utilisez DomElement->set_attribute() à la place.
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.
Example#1 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 :
Example#2 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é.
Example#3 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().