Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<DOMDocument::createDocumentFragmentDOMDocument::createElementNS>
^DOMDocumentLast updated: Mon, 26 Oct 2026

DOMDocument::createElement

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElement — Create new element node

Description

public function 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

May throw a DOMException with the following error codes:

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


<DOMDocument::createDocumentFragmentDOMDocument::createElementNS>
^DOMDocumentLast updated: Mon, 26 Oct 2026