DOMDocument::createElement

Create new element node

&reftitle.description; public ``DOMElement``false```DOMDocument::createElement` `string` `localName` `string` `value`""

This function creates a new instance of class `DOMElement`. &dom.node.inserted;

&reftitle.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.

&reftitle.returnvalues;

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

&reftitle.errors;

`DOM_INVALID_CHARACTER_ERR`

- Raised if `localName` contains an invalid character.

&reftitle.examples;

### 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();
    ?>

&example.outputs;

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

### 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();
    ?>

&example.outputs.similar;

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

&reftitle.notes;

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

&reftitle.seealso;

- `DOMNode::appendChild`
- `DOMDocument::createAttribute`
- `DOMDocument::createAttributeNS`
- `DOMDocument::createCDATASection`
- `DOMDocument::createComment`
- `DOMDocument::createDocumentFragment`
- `DOMDocument::createElementNS`
- `DOMDocument::createEntityReference`
- `DOMDocument::createProcessingInstruction`
- `DOMDocument::createTextNode`