Replaces the element with new nodes

- « DOMElement::replaceChildren

- DOMElement::setAttribute »

- PHP Manual
- DOMElement
- Replaces the element with new nodes

# DOMElement::replaceWith

(PHP 8)

DOMElement::replaceWith — Replaces the element with new nodes

### Description

public DOMElement::replaceWith(DOMNode|string `...$nodes`): void

Replaces the element with new `nodes`.

### Parameters

`nodes`

  The replacement nodes. Strings are automatically converted to text nodes.

### Return Values

No value is returned.

### Errors/Exceptions

`DOM_HIERARCHY_REQUEST_ERR`

  Raised if the parent is of a type that does not allow children of the type of one of the passed `nodes`, or if the node to put in is one of this node's ancestors or this node itself.

`DOM_WRONG_DOCUMENT_ERR`

  Raised if one of the passed `nodes` was created from a different document than the one that created this node.

### Changelog

Version | Description
--- | ---
8.3.0 | Calling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code `DOM_HIERARCHY_REQUEST_ERR`.

### Examples

Example #1 DOMElement::replaceWith() example

Replaces the element with new nodes.

    <?php$doc = new DOMDocument;$doc->loadXML("<container><hello/></container>");$cdata = $doc->documentElement->firstChild;$cdata->replaceWith("beautiful", $doc->createElement("world"));echo $doc->saveXML();?>

The above example will output:

    <?xml version="1.0"?>
    <container>beautiful<world/></container>

### See Also

- DOMChildNode::replaceWith() - Replaces the node with new nodes
- DOMElement::replaceChildren() - Replace children in element
- DOMElement::after() - Adds nodes after the element
- DOMElement::before() - Adds nodes before the element
- DOMElement::remove() - Removes the element