La función DOMNode::replaceChild() es una función incorporada en PHP que se usa para reemplazar el antiguo Node secundario con el nuevo Node pasado. Además, si el nuevo Node ya es secundario, no se agregará la segunda vez. Si el reemplazo tiene éxito, se devuelve el Node antiguo.
Sintaxis:
DOMNode DOMNode::replaceChild( DOMNode $newnode, DOMNode $oldnode )
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $newnode: Especifica el nuevo Node.
- $oldnode: Especifica el Node antiguo.
Valor devuelto: esta función devuelve el Node antiguo o FALSO si se produce un error.
Excepciones: esta función arroja DOM_NO_MODIFICATION_ALLOWED_ERR, si este Node es de solo lectura o si el padre anterior del Node que se inserta es de solo lectura, DOM_HIERARCHY_REQUEST_ERR, si este Node es de un tipo que no permite elementos secundarios del tipo de $newnode Node, o si el Node a colocar es uno de los ancestros de este Node o este Node mismo, DOM_WRONG_DOCUMENT_ERR, si $newnode se creó a partir de un documento diferente al que creó este Node, DOM_NOT_FOUND, si $oldnode no es un elemento secundario de este Node.
Los siguientes ejemplos ilustran la función DOMNode::replaceChild() en PHP:
Programa 1:
<?php // Create a new DOMDocument instance $document = new DOMDocument(); // Create a root element $element = $document->appendChild(new DOMElement('root')); // Create the text Node $text1 = $document->createTextNode('Hello ! '); $text2 = $document->createTextNode('Text to be replaced'); $text3 = $document->createTextNode('replaced'); // Append the nodes $element->appendChild($text1); $element->appendChild($text2); // Replace the child $element->replaceChild($text3, $text2); // Render the output echo $document->saveXML();
Producción:
<?xml version="1.0"?> <root>Hello ! replaced</root>
Ejemplo 2:
<?php // Create a new DOMDocument instance $document = new DOMDocument(); // Create a h1 element $element = $document->appendChild(new DOMElement('h1')); // Create the text Node $text1 = $document->createTextNode('Geeksfor'); $text2 = $document->createTextNode('Text to be removed'); $text3 = $document->createTextNode('Geeks'); // Append the nodes $element->appendChild($text1); $element->appendChild($text2); // Replace the child $element->replaceChild($text3, $text2); // Render the output echo $document->saveXML(); ?>
Producción:
<?xml version="1.0"?> <root>GeeksforGeeks</root>
Referencia: https://www.php.net/manual/en/domnode.replacechild.php