dom_import_simplexml

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

説明

DOMAttrDOMElement dom_import_simplexml(object $node)

この関数は、指定された 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