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

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

作成日: 更新日:

基本的な使い方

ownerDocumentプロパティは、DOMCharacterDataオブジェクトが属するDOMDocumentオブジェクトを保持するプロパティです。PHPのDOM拡張機能は、HTMLやXMLドキュメントの構造をプログラムで操作するための標準的なAPIを提供します。DOMCharacterDataクラスは、ドキュメント内で文字データを持つノード、例えばテキストノード、コメントノード、CDATAセクションノードといった、文字情報を表現するあらゆるノードの共通の基底クラスです。

どのような種類のDOMノードであっても、それは必ず特定のHTMLまたはXMLドキュメントの一部として存在しています。このownerDocumentプロパティは、現在操作しているDOMCharacterDataオブジェクトがどのDOMDocumentオブジェクトに属しているのか、つまりどのHTMLやXMLドキュメント全体の構造の一部であるかを明確に示します。このプロパティにアクセスすると、該当するノードが属する最上位のDOMDocumentオブジェクトが返されます。

例えば、あるテキストノードを編集しているときに、そのノードが属するドキュメント全体に対して新しい要素や属性を作成したい場合など、ドキュメントレベルの操作を行う際には、このownerDocumentプロパティを通じてDOMDocumentオブジェクトを取得することが非常に役立ちます。これにより、現在操作している特定のノードから、その親となるドキュメントルートに簡単にアクセスし、ドキュメント全体を対象とした多様な操作をスムーズに行うことができます。このプロパティは読み取り専用であり、その値はDOMノードが作成された時点で決定され、変更することはできません。

構文(syntax)

1<?php
2$document = new DOMDocument();
3$element = $document->createElement('example', 'Some character data here.');
4$document->appendChild($element);
5
6$characterDataNode = $element->firstChild; // DOMCharacterData の子クラスである DOMText ノードを取得
7
8$ownerDocument = $characterDataNode->ownerDocument;
9?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMDocument|null

このプロパティは、このノードが属する DOMDocument オブジェクト、またはノードがどのドキュメントにも属さない場合は null を返します。

【PHP8.x】ownerDocumentプロパティの使い方 | いっしー@Webエンジニア