【PHP8.x】DOMProcessingInstruction::cloneNode()メソッドの使い方
cloneNodeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
cloneNodeメソッドは、呼び出し元のDOMProcessingInstructionオブジェクトの複製を作成するメソッドです。このメソッドを実行すると、元の処理命令ノードと全く同じターゲットとデータを持つ、新しいDOMProcessingInstructionオブジェクトが生成されます。cloneNodeメソッドは、一般的にdeepという真偽値の引数を取ります。この引数は、ノードの子孫を再帰的に複製するかどうかを指定するためのものですが、DOMProcessingInstructionノードは構造上、子ノードを持つことができません。そのため、このクラスでcloneNodeを使用する場合、deep引数にtrueを指定してもfalseを指定してもその値は無視され、常にノード自体のみを複製するシャロークローンとして動作します。返り値として、複製された新しいDOMProcessingInstructionオブジェクトが返されます。この複製されたノードは、元のドキュメントツリーにはまだ属していない独立した状態のため、後からappendChildメソッドなどを用いてドキュメントに追加する必要があります。処理に失敗した場合はfalseを返します。
構文(syntax)
1<?php 2 3// DOMDocument オブジェクトを作成します 4$dom = new DOMDocument(); 5 6// 複製元となる処理命令ノード (DOMProcessingInstruction) を作成します 7$originalNode = $dom->createProcessingInstruction('xml-stylesheet', 'type="text/css" href="style.css"'); 8 9// cloneNode() メソッドを呼び出してノードを複製します 10$clonedNode = $originalNode->cloneNode(); 11 12// 複製されたノードのプロパティにアクセスできることを確認します 13echo $clonedNode->target; // "xml-stylesheet" 14echo PHP_EOL; 15echo $clonedNode->data; // "type=\"text/css\" href=\"style.css\"" 16 17?>
引数(parameters)
bool $deep = false
- bool $deep = false: true を指定すると、ノードとそのすべての子孫ノードが複製されます。false の場合、ノードのみが複製され、子ノードは複製されません。
戻り値(return)
DOMNode|false
DOMProcessingInstruction クラスの cloneNode メソッドは、現在の DOMProcessingInstruction ノードのディープコピーを生成します。成功した場合は生成された新しい DOMNode オブジェクトを返し、失敗した場合は false を返します。