【PHP8.x】adoptNodeメソッドの使い方
adoptNodeメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
adoptNodeメソッドは、指定されたノードを現在のDom\Documentオブジェクトに「養子として迎え入れる」ことを実行するメソッドです。これは、あるDOMドキュメントに属するノードを、このメソッドを呼び出す別のDom\Documentインスタンスへと所有権を完全に移動させる際に使用されます。具体的には、引数で渡されたノードが元のドキュメントツリーから切り離され、呼び出し元のドキュメントがその新しい所有者となります。
このメソッドの主な目的は、異なるドキュメント間でノードを移動させることです。例えば、複数のXMLファイルやHTML断片を一つのドキュメントに統合する際に、ノードをコピーするのではなく、元の位置から完全に移動させたい場合に非常に有用です。ノードの移動後は、新しいドキュメントのどこにそのノードを配置するかを、appendChildなどの別のメソッドを使って明示的に指定する必要があります。
注意点として、ノードを養子に迎える行為は、元のドキュメントからそのノードを削除することを意味します。また、このメソッドは要素ノードやテキストノードなど、様々な種類のノードに対応していますが、属性ノード(DOMAttr)を直接採用することはできません。ただし、属性を持つ要素ノードを採用した場合、その属性も自動的に新しいドキュメントに移動します。名前空間の情報も適切に保持されるため、異なる名前空間を持つドキュメント間でも安全にノードを扱えます。
構文(syntax)
1<?php 2$targetDocument = new DOMDocument(); 3$sourceDocument = new DOMDocument(); 4$nodeToAdopt = $sourceDocument->createElement('exampleNode'); 5 6// 別のドキュメント($sourceDocument)からノード($nodeToAdopt)を現在のドキュメント($targetDocument)に採用する 7$adoptedNode = $targetDocument->adoptNode($nodeToAdopt); 8?>
引数(parameters)
Dom\Node $node
- Dom\Node $node: 新しく作成されたノードを、このドキュメントに採用(アタッチ)するために指定します
戻り値(return)
Dom\Node
指定されたDom\Documentインスタンスのコンテキストで、他のDom\Documentから移植されたDom\Nodeオブジェクトを返します。