SimpleXMLElement オブジェクトから DOMAttr または DOMElement オブジェクトを取得する

# dom_import_simplexml

(PHP 5, PHP 7, PHP 8)

dom_import_simplexml — SimpleXMLElement オブジェクトから DOMAttr または DOMElement オブジェクトを取得する

### 説明

function dom_import_simplexml(object `$node`): DOMAttr|DOMElement

この関数は、指定された `node` (SimpleXMLElement のインスタンス) を受けとり、 DOMAttr または DOMElement をそれぞれ作成します。 新しい DOMNode は、 既にある同じXMLノードを SimpleXMLElement として参照しています。

### パラメータ

`node`

  インポートする属性または要素 (SimpleXMLElement のインスタンス)

### 戻り値

DOMAttr または DOMElement を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.0.0 | この関数は、失敗時に `null` を返さなくなりました。

### 例

例1 dom_import_simplexml() を用いて SimpleXML を DOM にインポートする

    <?php

    $sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

    if ($sxe === false) {
        echo 'ドキュメントのパース中にエラー';
        exit;
    }

    $dom_sxe = dom_import_simplexml($sxe);
    if (!$dom_sxe) {
        echo 'XML の変換中にエラー';
        exit;
    }

    $dom = new DOMDocument('1.0');
    $dom_sxe = $dom->importNode($dom_sxe, true);
    $dom_sxe = $dom->appendChild($dom_sxe);

    echo $dom->saveXML();

    ?>

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

    <?xml version="1.0"?>
    <books><book><title>blah</title></book></books>

例2 Import SimpleXML into DOM and modify SimpleXML through DOM

Error handling omitted for brevity.

    <?php
    $sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');
    $elt = dom_import_simplexml($sxe);
    $elt->setAttribute("foo", "bar");
    echo $sxe->asXML();
    ?>

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

    <?xml version="1.0"?>
    <books foo="bar"><book><title>blah</title></book></books>

### 参考

- simplexml_import_dom() - XML または HTML ノードから SimpleXMLElement オブジェクトを取得する

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