DOMDocument::importNode

(PHP 5, PHP 7, PHP 8)

DOMDocument::importNode現在のドキュメントにノードをインポートする

説明

public DOMDocument::importNode(DOMNode $node, bool $deep = false): DOMNode|false

この関数は、インポートするノードのコピーを返し、 それを現在のドキュメントに関連付けます。

パラメータ

node

インポートするノード。

deep

true の場合、このメソッドは node 以下のサブツリーも再帰的にインポートします。

注意:

ノードの属性をコピーするには deeptrue に設定しなければなりません。

戻り値

コピーされたノードを返します。 コピーできなかった場合は false を返します。

エラー / 例外

ノードがインポートできなかった場合には DOMException がスローされます。

例1 DOMDocument::importNode() の例

ノードをドキュメント間でコピーします。

<?php

$orgdoc 
= new DOMDocument;
$orgdoc->loadXML("<root><element><child>text in child</child></element></root>");

// 新しいドキュメントにインポートしたいノード
$node $orgdoc->getElementsByTagName("element")->item(0);


// 新しいドキュメントを作成します
$newdoc = new DOMDocument;
$newdoc->formatOutput true;

// マークアップを追加します
$newdoc->loadXML("<root><someelement>text in some element</someelement></root>");

echo 
"The 'new document' before copying nodes into it:\n";
echo 
$newdoc->saveXML();

// ノードとそのすべての子をドキュメントにインポートします
$node $newdoc->importNode($nodetrue);
// それから、それを "<root>" ノードに追加します
$newdoc->documentElement->appendChild($node);

echo 
"\nThe 'new document' after copying the nodes into it:\n";
echo 
$newdoc->saveXML();
?>

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

The 'new document' before copying nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
</root>

The 'new document' after copying the nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
  <element>
    <child>text in child</child>
  </element>
</root>

関連キーワード:  ノード, DOMDocument, コピー, someelement, ドキュメント, importNode, node, child, DOMNode, some