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

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

作成日: 更新日:

基本的な使い方

parentNodeプロパティは、PHPのDOM拡張機能において、DOMNodeクラスのインスタンスが所属するDOMツリーにおける親ノードを保持するプロパティです。このプロパティを使用することで、現在のノードからその直上の親ノードにアクセスできます。

具体的には、DOMNodeオブジェクトが表す要素やテキストなどのノードが、どの要素やドキュメントの子ノードであるかを特定する際に利用されます。例えば、特定のHTML要素の子ノードから、その親要素に移動してさらに操作を行いたい場合に、このparentNodeプロパティを参照します。

parentNodeプロパティが保持する値は、親ノードを表すDOMNode型のオブジェクト、または親ノードが存在しない場合はnullになります。親ノードが存在しないケースとしては、DOMDocumentオブジェクト(ドキュメントツリーのルートノード)自体や、DOMDocumentFragmentのようにまだ実際のドキュメントツリーに挿入されていないノードなどが挙げられます。

このプロパティは読み取り専用であり、その値を直接変更することはできません。これは、DOMツリーの構造的な整合性を保つための設計です。parentNodeプロパティは、DOMツリーの階層構造を上方向にたどるナビゲーションにおいて不可欠であり、複雑なDOM構造を解析したり操作したりする際に非常に役立ちます。

構文(syntax)

1<?php
2$html = '<html><body><div id="container"><p>Hello, World!</p></div></body></html>';
3
4$dom = new DOMDocument();
5$dom->loadHTML($html);
6
7// <p>ノードを取得します
8$paragraphNode = $dom->getElementsByTagName('p')->item(0);
9
10if ($paragraphNode) {
11    // parentNode プロパティを使用して、現在のノードの親ノードを取得します
12    $parentNode = $paragraphNode->parentNode;
13
14    // 取得した親ノードの名前を表示します(この場合 'div' が表示されます)
15    echo $parentNode->nodeName;
16}
17?>

引数(parameters)

戻り値(return)

?DOMNode

このプロパティは、現在のDOMNodeオブジェクトの親ノードを表すDOMNodeオブジェクトを返します。親ノードが存在しない場合は null を返します。