【PHP8.x】ownerDocumentプロパティの使い方

ownerDocumentプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

ownerDocumentプロパティは、そのDOMEntityインスタンスが属するDOMDocumentオブジェクトを保持するプロパティです。PHPのDOM拡張において、DOMEntityクラスはXMLドキュメント内で宣言された実体(エンティティ)を表すノードです。XMLドキュメントを構成するすべてのノードは、必ず一つのDOMDocumentオブジェクトに属しており、このownerDocumentプロパティを利用することで、特定のDOMEntityがどのドキュメントのコンテキストで存在しているのかを知ることができます。

このプロパティは、例えばXMLドキュメントの一部である実体定義から、その実体が属するドキュメント全体の操作や、ドキュメント内の他の要素へのアクセスが必要な場合に非常に役立ちます。DOMEntityノードから直接、親となるDOMDocumentオブジェクトにアクセスできるため、ドキュメント全体の構造を調べたり、異なるノード間の関連性を辿ったりする際の起点として活用できます。このプロパティが保持するDOMDocumentオブジェクトは、XMLドキュメント全体を表現するルートノードであり、これにより柔軟なプログラミングが可能になります。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$xmlString = '<!DOCTYPE root [<!ENTITY example "Hello">]><root>&example;</root>';
4$dom->loadXML($xmlString);
5
6$entity = $dom->entities->getNamedItem('example');
7
8if ($entity instanceof DOMEntity) {
9    $ownerDocument = $entity->ownerDocument;
10    var_dump($ownerDocument === $dom);
11}

引数(parameters)

引数なし

引数はありません

戻り値(return)

?DOMDocument

このプロパティは、このエンティティが属するDOMDocumentオブジェクトを返します。エンティティがDOMツリーに属していない場合はNULLを返します。

関連コンテンツ

関連プログラミング言語