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

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

作成日: 更新日:

基本的な使い方

previousElementSiblingプロパティは、PHPのDOM拡張機能において、特定のDOMElementオブジェクトの直前の兄弟要素を保持するプロパティです。PHPのDOM拡張機能は、HTMLやXMLなどの構造化された文書をプログラムで操作できるようにするために提供されており、文書の各部分をオブジェクトとして扱います。

DOMElementオブジェクトは、HTMLタグやXMLタグなど、文書内の個々の「要素」を表します。このpreviousElementSiblingプロパティを利用することで、現在対象としているDOMElementオブジェクトの直前に位置する「兄弟要素」を取得することができます。ここで言う兄弟要素とは、同じ親要素を持つ要素のことを指します。例えば、ウェブページの複数の<div>要素が同じ親<body>要素の直下にある場合、ある<div>要素のpreviousElementSiblingプロパティは、その<div>のすぐ前に定義されている<div>要素を返します。

このプロパティは、Webページの構造を解析したり、特定の要素の直前にある別の要素にアクセスして操作したりする際に非常に役立ちます。例えば、特定のHTML要素の前に新しい要素を追加したり、直前の要素の内容に基づいて現在の要素の表示を変更したりするような動的な処理に利用できます。

戻り値は、直前の兄弟要素が存在すればDOMElementオブジェクトとして返されます。しかし、もし対象の要素の直前に兄弟要素が存在しない場合(例えば、その要素が親要素の最初の子要素である場合など)は、nullが返されます。したがって、このプロパティの値を利用する際には、nullでないかどうかの確認を行うことが重要です。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$dom->loadHTML('<div><span>Element 1</span><p>Element 2</p><span>Element 3</span></div>');
4
5$targetElement = $dom->getElementsByTagName('p')->item(0);
6
7if ($targetElement) {
8    $previousSibling = $targetElement->previousElementSibling;
9
10    if ($previousSibling) {
11        echo "Previous element sibling of <p>: " . $previousSibling->nodeName;
12    } else {
13        echo "No previous element sibling found for <p>.";
14    }
15} else {
16    echo "Target element <p> not found.";
17}

引数(parameters)

引数なし

引数はありません

戻り値(return)

?DOMElement

DOMElementクラスのpreviousElementSiblingプロパティは、現在の要素の直前に存在する兄弟要素をDOMElementオブジェクトとして返します。直前の兄弟要素が存在しない場合はnullを返します。

関連コンテンツ

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