« DOM 関数
Dom\import_simplexml »

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 オブジェクトを取得する

関連キーワード:
simplexml   import   books   book   title   SimpleXMLElement   DOMAttr   DOMElement   blah   node   SimpleXML   インスタンス   ノード   インポート   load   exit   DOMNode   属性   履歴   ドキュメント   パース   DOMDocument   importNode   appendChild   saveXML
関連する関数・ページ:
function.simplexml-import-dom   function.dom-ns-import-simplexml   ref.dom   function.simplexml-load-file   ref.simplexml   function.simplexml-load-string