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

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

作成日: 更新日:

基本的な使い方

nextElementSiblingプロパティは、DOMツリーにおいて、現在の要素の直後に位置する次の兄弟要素(Elementノード)を保持するプロパティです。このプロパティは、DOMElementクラスのオブジェクトに対して使用されます。

HTMLやXMLのようなドキュメントは、要素が階層的な親子関係や横並びの兄弟関係を持つツリー構造で表現されます。兄弟要素とは、同じ親要素を持つ要素同士のことを指します。例えば、<p>最初の段落</p><span>次の要素</span>というHTML構造があった場合、もし現在の要素が<p>タグを表すDOMElementオブジェクトであれば、nextElementSiblingプロパティは直後の<span>タグを表すDOMElementオブジェクトを返します。

このプロパティの重要な特徴は、名前に「Element」とあるように、要素ノードのみを対象とすることです。通常、DOMツリーには要素ノードだけでなく、テキストノード(要素間の改行や空白文字など)やコメントノードなども存在します。しかし、nextElementSiblingプロパティはこれらの非要素ノードをスキップし、純粋な要素ノードだけを次の兄弟として認識します。これにより、要素だけを効率的にたどり、操作することが可能になります。

もし現在の要素の直後に兄弟要素が存在しない場合、このプロパティはnullを返します。このプロパティを利用することで、Webページの特定の要素を基準として、その隣接する要素を素早く見つけ出し、内容の取得や属性の変更、スタイル調整といった操作を行うことができます。PHPのDOM拡張機能は、このようなドキュメント操作において非常に強力なツールとなります。

構文(syntax)

1<?php
2
3$dom = new DOMDocument();
4// HTML文字列をロードします。ここでは、次の兄弟要素が存在する例を示します。
5$dom->loadHTML('<div><p id="currentElement">現在の要素</p><span>次の兄弟要素</span></div>');
6
7// ID 'currentElement' を持つ要素を取得します。
8$currentElement = $dom->getElementById('currentElement');
9
10// currentElement の次の兄弟要素(Element型)を取得し、そのタグ名を表示します。
11if ($currentElement && $currentElement->nextElementSibling) {
12    echo $currentElement->nextElementSibling->tagName; // 出力: span
13} else {
14    echo "次の兄弟要素は見つかりませんでした。";
15}
16
17?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMElement|null

DOMElement クラスの nextElementSibling プロパティは、現在の要素の直後にある兄弟要素を返します。兄弟要素が存在しない場合は null を返します。

関連コンテンツ

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