文字データの前にノードを追加する

# DOMCharacterData::before

(PHP 8)

DOMCharacterData::before — 文字データの前にノードを追加する

### 説明

public function DOMCharacterData::before(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 DOMCharacterData::before() の例

文字データの前にノードを追加します。

    <?php
    $doc = new DOMDocument;
    $doc->loadXML("<container><![CDATA[world]]></container>");
    $cdata = $doc->documentElement->firstChild;

    $cdata->before("hello", $doc->createElement("beautiful"));

    echo $doc->saveXML();
    ?>

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

    <?xml version="1.0"?>
    <container>hello<beautiful/><![CDATA[world]]></container>

### 参考

- DOMChildNode::before() - ノードの前にノードを追加する
- DOMCharacterData::after() - 文字データの後ろにノードを追加する

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