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

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

作成日: 更新日:

基本的な使い方

parentElementプロパティは、DOMツリーにおける親要素ノードを取得するためのプロパティです。このプロパティは、PHP 8のDom\CharacterDataクラスに属しています。Dom\CharacterDataクラスは、XMLやHTMLドキュメント内でテキストノード、コメントノード、CDATAセクションノードといった文字データを含むノードを表す際に使用されます。

parentElementプロパティを利用すると、現在操作しているDom\CharacterDataノードの直上の親が要素ノードである場合に、その親要素を表すDom\Elementオブジェクトを取得できます。もし親ノードが存在しない場合や、親ノードが要素(Dom\Element)ではない場合(例えば、親がDom\Documentノードである場合など)には、nullが返されます。

このプロパティは読み取り専用であり、親要素を直接変更することはできません。Dom\CharacterDataノードが持つparentNodeプロパティと似ていますが、parentNodeが親ノードの種類に関わらず親ノードそのものを返すのに対し、parentElementは親ノードが明確に要素ノードである場合にのみDom\Elementオブジェクトを返します。この違いにより、親が要素であるかどうかを別途確認する手間を省き、より直感的に親要素に対する操作を行うことが可能になります。HTMLやXMLドキュメントの構造を解析し、特定のテキストやコメントの親要素を効率的に特定したい場合に特に有用です。

構文(syntax)

1<?php
2
3$dom = new DOMDocument();
4$element = $dom->createElement('example');
5$dom->appendChild($element);
6
7$textNode = $dom->createTextNode('This is a text node.');
8$element->appendChild($textNode);
9
10// Dom\CharacterData クラスの子孫である $textNode から parentElement プロパティにアクセス
11$parent = $textNode->parentElement;
12
13if ($parent instanceof DOMElement) {
14    echo "Parent element tag name: " . $parent->tagName;
15} else {
16    echo "No parent element found.";
17}
18
19?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

Dom\Element|null

Dom\Element オブジェクト、または親要素が存在しない場合は null を返します。