Replaces the character data with new nodes

# DOMCharacterData::replaceWith

(PHP 8)

DOMCharacterData::replaceWith — Replaces the character data with new nodes

### Description

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

Replaces the character data 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 DOMCharacterData::replaceWith() example

Replaces the character data with new nodes.

`<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[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
- DOMCharacterData::after() - Adds nodes after the character data
- DOMCharacterData::before() - Adds nodes before the character data
- DOMCharacterData::remove() - Removes the character data node

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open