DOM XML (PHP 4) 函数
在线手册:中文 英文
PHP手册

DomDocument::create_element

(PHP 4 >= 4.1.0)

DomDocument::create_elementCreate new element node

说明

domelement DomDocument::create_element ( string $name )

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter. 此节点出现在文档中,除非是用诸如 domnode_append_child() 等函数来将其插入。

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(), domnode_append_child(), domdocument_create_text(), domdocument_create_comment(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference(), and domnode_insert_before().


DOM XML (PHP 4) 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Create new element node

用户评论:

arimbourg at ariworld dot eu (16-Mar-2009 09:59)

It seem that the domDocument 'create_element' method don't work anymore in php 5.2.6.
We have to use the DOM 'createElement' instead.

Mikael Ljungberg (03-May-2005 06:46)

When creating empty nodes like xhtml:link, the output misses the closing slash. This is what I got:

<link ...>

dk (25-Nov-2003 07: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);
?>

Jorrit Kronjee (05-Nov-2003 03: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);

Nico almhoedi at gmx dot de (04-Jan-2003 11: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()

greg@cabinetuk (14-Nov-2002 01: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");
?>