DOMDocument::createElement

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElementCreate new element node

Description

public DOMDocument::createElement(string $localName, string $value = ""): DOMElement|false

This function creates a new instance of class DOMElement. This node will not show up in the document unless it is inserted with (e.g.) DOMNode::appendChild().

Parameters

localName

The tag name of the element.

value

The value of the element. By default, an empty element will be created. The value can also be set later with DOMElement::$nodeValue.

The value is used verbatim except that the < and > entity references will escaped. Note that & has to be manually escaped; otherwise it is regarded as starting an entity reference. Also " won't be escaped.

Return Values

Returns a new instance of class DOMElement or false if an error occurred.

Errors/Exceptions

DOM_INVALID_CHARACTER_ERR

Raised if localName contains an invalid character.

Examples

Example #1 Creating a new element and inserting it as root

<?php

$dom 
= new DOMDocument('1.0''utf-8');

$element $dom->createElement('test''This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo 
$dom->saveXML();
?>

The above example will output:

<?xml version="1.0" encoding="utf-8"?>
<test>This is the root element!</test>

Example #2 Passing text containing an unescaped & as value

<?php
$dom 
= new DOMDocument('1.0''utf-8');
$element $dom->createElement('foo''me & you');
$dom->appendChild($element);
echo 
$dom->saveXML();
?>

The above example will output something similar to:

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

Notes

Note:

The value will not be escaped. Use DOMDocument::createTextNode() to create a text node with escaping support.

See Also