【PHP8.x】importLegacyNodeメソッドの使い方
importLegacyNodeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
importLegacyNodeメソッドは、Dom\XMLDocumentクラスに属し、他のXML文書から作成された既存のDOMノードを、現在のXML文書に取り込むために実行するメソッドです。
このメソッドを使用することで、異なるDOMコンテキストで生成された要素、属性、テキストなどの様々な種類のノードを、現在のDom\XMLDocumentインスタンス内に複製し、統合することが可能になります。具体的には、引数としてインポートしたいDOMノードオブジェクトを指定します。メソッドが実行されると、そのノードが現在の文書のルールに従って調整され、新しいノードとして現在の文書に組み込まれます。
これにより、複数のXML文書から必要な部分だけを抽出し、一つの文書にまとめるようなシナリオで非常に有用です。インポートされたノードは、元の文書のノードとは独立した新しいオブジェクトとして扱われるため、元の文書の内容に影響を与えることなく、安全に文書構造を操作できます。
メソッドの実行結果として、現在のXML文書内に新しく作成され、取り込まれたノードオブジェクトが返されます。この機能は、特にPHPの従来のDOM拡張で扱われていたノードを、新しいDom\XMLDocument環境にスムーズに移行させる際にも役立ちます。
構文(syntax)
1<?php 2// Dom\XMLDocument クラスのインスタンス (ノードをインポートする対象のXMLドキュメント) 3$targetDocument = /* Dom\XMLDocument のインスタンス */; 4 5// インポートする DOMNode インスタンス (別のドキュメントまたは同じドキュメントから取得したノード) 6$sourceNode = /* DOMNode のインスタンス */; 7 8// ノードをインポートします。 9// 構文: importLegacyNode(DOMNode $node, bool $deep = false): DOMNode 10// 第1引数 ($node): インポートする DOMNode オブジェクト 11// 第2引数 ($deep, オプション): ノードの子孫もすべて再帰的にインポートするかどうか (bool型、デフォルトは false) 12$importedNode = $targetDocument->importLegacyNode($sourceNode, true); 13 14// 戻り値 $importedNode は、現在のドキュメントにインポートされた DOMNode オブジェクトです。 15?>
引数(parameters)
DOMNode $node, bool $deep = false
- DOMNode $node: インポートするDOMNodeオブジェクト
- bool $deep = false: trueを指定すると、指定されたノードの子孫もすべてインポートする
戻り値(return)
戻り値なし
戻り値はありません