dom_import_simplexml

(PHP 5, PHP 7, PHP 8)

dom_import_simplexml SimpleXMLElement オブジェクトから DOMElement オブジェクトを取得する

説明

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