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

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

作成日: 更新日:

基本的な使い方

parentElementプロパティは、DOMツリー内で現在のDOMCharacterDataノードの親要素を保持するプロパティです。DOMCharacterDataは、XMLやHTMLドキュメント内でテキストデータ、コメント、CDATAセクションといった文字情報を表すノードの抽象基底クラスです。このプロパティを利用することで、例えばあるテキストノードがどのHTMLタグ(要素)の中に含まれているかを知ることができます。

具体的には、現在のDOMCharacterDataノードが子として追加されている親ノードが、DOMElement型の要素ノードである場合に、その親要素ノード(DOMElementオブジェクト)を返します。もし親ノードが存在しない場合や、親ノードが要素ではない(例えば、親が文書ノード(DOMDocument)や文書フラグメントノード(DOMDocumentFragment)である場合など)ときは、このプロパティはnullを返します。

このプロパティは、DOMツリーを操作する際に、特定の文字データを持つノードから、その上位にある構造的な親要素を簡単に特定したい場合に非常に役立ちます。例えば、特定のテキストの内容を基に、そのテキストを囲む要素のスタイルを変更したり、要素自体を削除したりするようなシナリオで利用できます。これにより、DOMツリーの探索や操作の効率性が向上し、より複雑なドキュメント処理を簡潔に記述できるようになります。

構文(syntax)

1<?php
2
3// HTML文字列からDOMドキュメントを作成
4$html = "<p>これはテキストノードです。</p>";
5$doc = new DOMDocument();
6$doc->loadHTML($html);
7
8// <p>要素内のテキストノードを取得します (DOMTextはDOMCharacterDataを継承しています)
9$textNode = $doc->getElementsByTagName('p')->item(0)->firstChild;
10
11// parentElementプロパティを使用して、テキストノードの親要素を取得します
12$parentElement = $textNode->parentElement;
13
14// 親要素のタグ名を出力します (出力結果: "p")
15if ($parentElement instanceof DOMElement) {
16    echo $parentElement->tagName;
17}
18
19?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMElement|null

このプロパティは、このノードの親ノードが DOMElement インターフェースを実装している場合はその DOMElement オブジェクトを返します。親ノードが DOMElement でない場合や、親ノードが存在しない場合は null を返します。

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