When creating empty nodes like xhtml:link, the output misses the closing slash. This is what I got:
<link ...>
DomDocument->create_element
(No version information available, might be only in CVS)
DomDocument->create_element — Crear un nuevo nodo de tipo elemento
Descripción
Esta función devuelve una nueva instancia de la clase DomElement. El nombre de la etiqueta del elemento es el valor del parámetro pasado. Este nodo no sera mostrado en el documento a no ser que sea introducido por ejemplo con domnode_append_child().
El valor de retorno es FALSE si ocurre un error.
Vea también domdocument_create_element_ns(), domnode_append_child(), domdocument_create_text(), domdocument_create_comment(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference(), y domnode_insert_before().
DomDocument->create_element
03-May-2005 07:46
25-Nov-2003 08:58
The first example on this page is also a bit verbose. Since the DomElement class inherits/extends the DomNode class, one does not, in fact, have to get another reference to the first node. The create_element method has already given you that reference. (Also, the last line passes a string to the append_child method, instead of a DomNode object) Simplified:
<?
$new_element = $dom->create_element("new_element");
$new_element->append_child($another_element);
$oldTag->append_child($new_element);
?>
05-Nov-2003 04:15
The example done by Nico Almhoedi has a small error.
Since append_child only accepts DomElement (which is an object), it should've been:
$new_element = DomDocument->create_element("new_el");
$new_node = $existent_node->append_child($new_element);
05-Jan-2003 12:40
It's easier possible since DomNode->append_child($new_element) returns the new child as an object, so you can refer to it immediately.
To append a child to the node $existent_node:
$new_element = DomDocument->create_element("new_el");
$new_node = $existent_node->append_child("new_el");
see Manual DomNode->append_child()
14-Nov-2002 02:27
Its important to remember, when adding a created element to an existing node using append_child(), that if you want to then add another element to that node you have to go back and set up a DOMNode instance using DOMDocument_get_elements_by_tagname or similar before you can append another node onto it.
eg
<?
$new_element = $dom->create_element("new_element");
$oldTag->append_child($new_element);
//Go back and set up new element as DOMNode
$new_elementArray = $dom->get_elements_by_tagname("new_element");
$new_elementTag = $new_elementArray[0];//(if theres more than one use a for loop)
$new_elementTag->append_child("another_new_element");
?>
