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

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

作成日: 更新日:

基本的な使い方

parentNodeプロパティは、所属するDom\CharacterDataオブジェクトの親ノードを保持するプロパティです。

Dom\CharacterDataクラスは、PHPのDOM拡張機能において、XMLやHTMLなどの文書構造を表現するDOM(Document Object Model)ツリー内の文字データを含むノードの共通の基盤を提供する抽象クラスです。具体的には、文書内のテキスト、コメント、CDATAセクションといった種類のノードがこのクラスを継承しています。

このparentNodeプロパティを利用することで、現在操作している文字データノードが、DOMツリーのどの要素ノードや他のノードの子であるかを簡単に取得できます。DOMツリーは親子関係で構成される階層構造を持っており、parentNodeプロパティはその階層を上方向、つまり親ノードの方向へ遡るために非常に重要な役割を果たします。

例えば、あるテキストノードの内容を処理した後、そのテキストノードが属する親要素ノードを取得し、さらに親要素ノードに対して別の操作を行いたい場合に、このプロパティが役立ちます。もし、現在のノードがツリーの最上位に位置しており、親ノードが存在しない場合(例えば、Documentノードなど)、parentNodeプロパティはnullを返します。この挙動により、プログラムで親の存在を確認しながら、安全かつ確実にDOMツリーを探索し、操作することが可能になります。

このように、parentNodeプロパティは、DOMツリー内のノード間の関係性を理解し、PHPを用いて文書構造を効率的に操作するための、基本的でありながら不可欠な機能を提供します。

構文(syntax)

1<?php
2// DOMDocumentのインスタンスを作成
3$dom = new DOMDocument();
4
5// 親要素として <p> 要素を作成し、ドキュメントに追加
6$parentElement = $dom->createElement('p');
7$dom->appendChild($parentElement);
8
9// テキストノード(Dom\Textクラス、これはDom\CharacterDataを継承しています)を作成
10$characterDataInstance = $dom->createTextNode('これはサンプルテキストです。');
11
12// テキストノードを親要素に追加
13$parentElement->appendChild($characterDataInstance);
14
15// Dom\CharacterDataオブジェクトのparentNodeプロパティにアクセスし、親ノードを取得する構文
16$parent = $characterDataInstance->parentNode;
17
18// $parent は $parentElement と同じ Dom\Element オブジェクト(ここでは <p> 要素)を参照します。
19// 例えば、echo $parent->nodeName; とすると "p" と出力されます。
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

?Dom\Node

このプロパティは、現在の文字データノードの親ノードを返します。親ノードが存在しない場合は null を返します。

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