【PHP8.x】DOMEntityReference::ownerDocumentプロパティの使い方
ownerDocumentプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
ownerDocumentプロパティは、このエンティティ参照ノードが属するドキュメント全体を表すDOMDocumentオブジェクトを保持するプロパティです。DOM(Document Object Model)では、XMLやHTMLドキュメントはノードから構成される階層的なツリー構造として扱われます。このプロパティを参照することで、特定のエンティティ参照ノードから、そのツリー構造の根元にあたるドキュメントオブジェクト本体にアクセスすることが可能になります。これにより、同じドキュメント内に新しい要素を作成したり、ドキュメント全体に関わる設定を取得したりといった操作の基点として利用できます。もし対象のノードがまだどのドキュメントにも追加されていない状態、例えばnew DOMEntityReference()でインスタンスが作成された直後などでは、このプロパティの値はnullになります。また、このプロパティは読み取り専用であるため、直接値を代入してノードの所属ドキュメントを変更することはできません。
構文(syntax)
1<?php 2// DTDを含むXML文字列を作成します 3$xmlString = <<<XML 4<?xml version="1.0" encoding="utf-8" ?> 5<!DOCTYPE root [ 6 <!ENTITY myEntity "entity text"> 7]> 8<root>&myEntity;</root> 9XML; 10 11// DOMDocumentオブジェクトを作成し、XMLを読み込みます 12$doc = new DOMDocument(); 13$doc->loadXML($xmlString); 14 15// エンティティ参照ノードを取得します 16// <root>タグの最初の子ノードがエンティティ参照ノードになります 17$entityRef = $doc->documentElement->firstChild; 18 19// DOMEntityReferenceオブジェクトのownerDocumentプロパティにアクセスします 20// このプロパティは、ノードが属するDOMDocumentオブジェクトを返します 21$ownerDocument = $entityRef->ownerDocument; 22 23// 取得したドキュメントオブジェクトのルート要素名を表示して確認します 24echo $ownerDocument->documentElement->nodeName; // "root" 25?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMDocument|null
このプロパティは、このエンティティ参照が属するDOMDocumentオブジェクト、またはそれがどのドキュメントにも属していない場合はnullを返します。