Replace children in fragment

- « DOMDocumentFragment::prepend

- DOMDocumentType »

- PHP Manual
- DOMDocumentFragment
- Replace children in fragment

# DOMDocumentFragment::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocumentFragment::replaceChildren — Replace children in fragment

### Description

public DOMDocumentFragment::replaceChildren(DOMNode|string `...$nodes`): void

Replaces the children in the document fragment with new `nodes`.

### Parameters

`nodes`

  The nodes replacing the children. Strings are automatically converted to text nodes.

### Return Values

No value is returned.

### Errors/Exceptions

`DOM_HIERARCHY_REQUEST_ERR`

  Raised if this node 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 an owner document now works. Previously this threw a DOMException with code `DOM_HIERARCHY_REQUEST_ERR`.

### Examples

Example #1 DOMDocumentFragment::replaceChildren() example

Replaces the children with new nodes.

    <?php
    $doc = new DOMDocument;
    $doc->loadXML("<container><hello/></container>");
    $fragment = $doc->createDocumentFragment();
    $fragment->append("hello");

    $fragment->replaceWith("beautiful", $doc->createElement("world"));

    echo $doc->saveXML($fragment);
    ?>

The above example will output:

    beautiful
    <world/>

### See Also

- DOMParentNode::replaceChildren() - Replace children in node
- DOMDocumentFragment::append() - Appends nodes after the last child node
- DOMDocumentFragment::prepend() - Prepends nodes before the first child node