Funciones de DOM XML (PHP 4)
PHP Manual

DomNode->append_child

(PHP 4 >= 4.1.0)

DomNode->append_child Agrega un nuevo hijo al final del grupo de hijos

Descripción

DOMNode DOMNode::append_child ( DOMNode $newnode )

Esta función agrega un hijo a una lista existente de hijos o crea una nueva lista de hijos.

Parámetros

nodo_nuevo

El nodo que está siendo agregado. Puede ser creado p.ej. con DomDocument->create_element, DomDocument->create_text_node etc. o simplemente usando cualquier otro nodo.

Note:

No es posible agregar un DOMAttribute usando este método. Use DomElement->set_attribute en su lugar.

Valores devueltos

Devuelve el nodo agregado en caso de éxito o FALSE en caso de error.

Historial de cambios

Versión Descripción
4.3.0 Ya no es posible insertar un nodo desde otro documento.
4.3.0 Antes de PHP 4.3.0, el nuevo hijo es duplicado antes de agregarse. Por lo tanto el nuevo hijo es una nueva copia que puede ser modificada sin cambiar el nodo que fue pasado a esta función. Si el nodo pasado tiene hijos, ellos serán duplicados también, lo que facilita la duplicación de grandes segmentos de un documento XML. El valor de retorno es el hijo agregado. Si planea realizar modificaciones posteriores sobre el hijo agregado, debe usar el nodo devuelto.
4.3.0 y 4.3.1 El nuevo hijo newnode es separado primero de su contexto actual, si ya se trata de un hijo de DomNode. Por lo tanto el newnode es movido y no copiado. Este es el comportamiento de acuerdo a las especificaciones del W3C. Si necesita el comportamiento antiguo, use DomNode->clone_node antes de agregar.
4.3.2 El nuevo hijo newnode es primero separado de su contexto actual, si éste ya existe en el árbol. Se aplican las mismas reglas.

Ejemplos

El siguiente ejemplo agrega un nuevo nodo tipo elemento a un documento nuevo y define el atributo align como left.

Example #1 Agregar un hijo

<?php
$doc 
domxml_new_doc("1.0");
$nodo $doc->create_element("para");
$nodo_nuevo $doc->append_child($nodo);
$nodo_nuevo->set_attribute("align""left");
?>

El anterior ejemplo pudo ser escrito también como:

Example #2 Agregar un hijo

<?php
$doc 
domxml_new_doc("1.0");
$nodo $doc->create_element("para");
$nodo->set_attribute("align""left");
$nodo_nuevo $doc->append_child($nodo);
?>

Un ejemplo más complejo se presenta a continuación. Primero busca cierto elemento, lo duplica incluyendo sus hijos y lo agrega como un hermano. Finalmente un nuevo atributo es agregado a uno de los hijos del nuevo hermano y el documento completo es volcado.

Example #3 Agregar un hijo

<?php
include("ejemplo.inc");

if (!
$dom domxml_open_mem($cadena_xml)) {
  echo 
"Ocurri&oacute; un error al analizar el documento\n";
  exit;
}

$elementos $dom->get_elements_by_tagname("informaltable");
print_r($elementos);
$elemento $elementos[0];

$padre $elemento->parent_node();
$nodo_nuevo $padre->append_child($elemento);
$hijos $nodo_nuevo->children();
$atr $hijos[1]->set_attribute("align""left");

$archivo_xml $dom->dump_mem();
echo 
htmlentities($archivo_xml);
?>

El ejemplo anterior pudo escribirse también con DomNode->insert_before en lugar de DomNode->append_child.

Migración a PHP 5

Se debe usar DOMNode::appendChild.

Ver también


Funciones de DOM XML (PHP 4)
PHP Manual