【PHP8.x】DOMProcessingInstruction::ownerDocumentプロパティの使い方
ownerDocumentプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『ownerDocumentプロパティは、この処理命令ノード(DOMProcessingInstruction)が属しているドキュメント全体を表すDOMDocumentオブジェクトを保持するプロパティです。XMLやHTMLのドキュメントは、要素やテキスト、処理命令といった様々な種類のノードから構成される木構造で表現されます。このプロパティを利用することで、特定の処理命令ノードから、そのノードがどのドキュメントの一部であるかを特定し、ドキュメント全体を操作するための起点となるDOMDocumentオブジェクトへ簡単にアクセスできます。例えば、ある処理命令ノードを取得した後に、ownerDocumentプロパティを使って同じドキュメント内にある別の要素を検索したり、新しい要素を作成してドキュメントに追加したりすることが可能になります。このプロパティは読み取り専用であり、ノードが属するドキュメントを後から変更することはできません。また、まだどのドキュメントにも追加されていないノードの場合、このプロパティの値はnullとなります。このように、ownerDocumentプロパティは、ドキュメント内の特定ノードからドキュメント全体へと遡ってアクセスするための重要な手段を提供します。
構文(syntax)
1<?php 2 3$xml = <<<XML 4<?xml version="1.0" encoding="UTF-8"?> 5<?php-stylesheet type="text/xsl" href="style.xsl"?> 6<root/> 7XML; 8 9$doc = new DOMDocument(); 10$doc->loadXML($xml); 11 12// DOMProcessingInstructionノードを取得 13// (XML宣言<?xml...>の次のノード) 14$pi = $doc->childNodes[1]; 15 16// ownerDocumentプロパティは、このノードが属するDOMDocumentオブジェクトを返します。 17$ownerDocument = $pi->ownerDocument; 18 19// 元の$docオブジェクトと同一であることを確認 20var_dump($ownerDocument === $doc); 21 22?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMDocument|null
このプロパティは、この命令が属する DOMDocument オブジェクト、または親要素を持たない場合には null を返します。