要素を新しいノードで置換する

# DOMElement::replaceWith

(PHP 8)

DOMElement::replaceWith — 要素を新しいノードで置換する

### 説明

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

要素を新しい `nodes` で置換します。

### パラメータ

`nodes`

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

### 戻り値

値を返しません。

### エラー / 例外

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

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | 親がないノードに対して、 このメソッドをコールしても何もしなくなりました。 これは DOM の仕様が要求する振る舞いに合わせるためです。 これより前のバージョンでは、エラーコード `DOM_HIERARCHY_REQUEST_ERR` を持つ DOMException がスローされていました。

### 例

例1 DOMElement::replaceWith() の例

要素を新しいノードで置換します。

    <?php
    $doc = new DOMDocument;
    $doc->loadXML("<container><hello/></container>");
    $cdata = $doc->documentElement->firstChild;

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

    echo $doc->saveXML();
    ?>

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

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

### 参考

- DOMChildNode::replaceWith() - ノードを新しいノードで置き換える
- DOMElement::replaceChildren() - 要素中の子を置換する
- DOMElement::after() - 要素の後ろにノードを追加する
- DOMElement::before() - 要素の前にノードを追加する
- DOMElement::remove() - 要素を削除する

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