文書片の子を置換する

# DOMDocumentFragment::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocumentFragment::replaceChildren — 文書片の子を置換する

### 説明

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

文書片に含まれる子を、新しい `nodes` で置換します。

### パラメータ

`nodes`

  子を置き換えるノード 文字列は自動的にテキストノードに変換されます。

### 戻り値

値を返しません。

### エラー / 例外

`DOM_HIERARCHY_REQUEST_ERR`
  指定された `nodes` のうちの一つの子ノードの型を、 親ノードが許可していない場合や、ノードが自分自身やその祖先であった場合に発生します。
`DOM_WRONG_DOCUMENT_ERR`
  指定された `nodes` のうちの一つが、 このノードを作成したドキュメントとは異なるものから作成された場合に発生します。

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | オーナーとなるドキュメントがないノードに対して、 このメソッドをコールしても動作するようになりました。 これより前のバージョンでは、エラーコード `DOM_HIERARCHY_REQUEST_ERR` を持つ DOMException がスローされていました。

### 例

例1 DOMDocumentFragment::replaceChildren() の例

子を新しいノードで置換します

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

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

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

上の例の出力は以下となります。

    beautiful
    <world/>

### 参考

- DOMParentNode::replaceChildren() - ノード中の子を置換する
- DOMDocumentFragment::append() - 最後の子ノードの後ろにノードを追加する
- DOMDocumentFragment::prepend() - 最初の子ノードの前にノードを追加する

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