【PHP8.x】adoptNodeメソッドの使い方

adoptNodeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

adoptNodeメソッドは、指定されたDOMノードの所有ドキュメントを、メソッドを呼び出したDOMDocumentインスタンスに変更するメソッドです。

このメソッドは、異なるDOMDocumentに属するノードを、現在のドキュメントで安全に利用可能にすることを目的とします。渡されたノードが別のドキュメントに属している場合、そのノードの所有ドキュメントを現在のドキュメントに移します。既に現在のドキュメントに属するノードは、所有権が変更されずそのまま返されます。

adoptNodeメソッドは、ノードの所有ドキュメントを変更するだけで、ノードのドキュメントツリー内の位置や親ノードからの削除には影響を与えません。ノードの追加には、appendChildinsertBeforeなどのDOM操作メソッドを続けて使用します。

複数のXMLやHTMLドキュメントから要素を集約し、新しいドキュメントを構築するようなシナリオで特に有用です。異なるドキュメントから取得したノードを現在のドキュメントに組み込む際、この所有権の変更は、ノードが新しいドキュメントの一部として正しく機能するために不可欠となります。

構文(syntax)

1<?php
2$originalDocument = new DOMDocument();
3$originalElement = $originalDocument->createElement('root', 'Original Content');
4$originalDocument->appendChild($originalElement);
5
6$targetDocument = new DOMDocument();
7$adoptedNode = $targetDocument->adoptNode($originalElement);
8
9if ($adoptedNode instanceof DOMNode) {
10    $targetDocument->appendChild($adoptedNode);
11    echo $targetDocument->saveXML();
12} else {
13    echo "ノードの採用(adopt)に失敗しました。\n";
14}

引数(parameters)

DOMNode $node

  • DOMNode $node: 別のDOMDocumentから移動させたいDOMNodeオブジェクト

戻り値(return)

DOMNode|false

指定されたノードを現在のDOMDocumentの所有権下に移動させ、成功した場合は移動されたDOMNodeオブジェクトを、失敗した場合はfalseを返します。

関連コンテンツ

関連プログラミング言語