Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】Dom\ProcessingInstruction::previousElementSiblingプロパティの使い方

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

作成日: 更新日:

基本的な使い方

previousElementSiblingプロパティは、DOMツリーにおける現在の処理命令ノード(ProcessingInstruction)の、直前に出現する兄弟要素ノード(Element)を保持するプロパティです。DOMツリーとは、XMLやHTML文書の構造を階層的な木構造で表現したものです。このプロパティは、同じ親ノードを持つ兄弟ノードの中から、現在のノードより前に位置する最も近い「要素ノード」、つまりHTMLの<div>タグや<p>タグのようなものだけを検索して返します。もし、すぐ前の兄弟ノードがテキストやコメントなど要素以外のものであった場合でも、このプロパティはそれを無視し、さらに前方を遡って最初の要素ノードを見つけ出します。この点は、テキストノードなどを含むあらゆる種類のノードを返すpreviousSiblingプロパティとの大きな違いです。先行する兄弟ノードに要素が一つも存在しない場合、このプロパティの値はnullになります。なお、このプロパティは読み取り専用のため、直接値を代入して変更することはできません。

構文(syntax)

1<?php
2
3$doc = new \Dom\Document();
4$doc->loadXML(
5    <<<XML
6    <root>
7      <p>Paragraph 1</p>
8      <!-- comment -->
9      <?php-pi data?>
10      <span>Span Element</span>
11    </root>
12    XML
13);
14
15// ProcessingInstruction ノード (<?php-pi data?>) を取得
16$pi = $doc->documentElement->childNodes->item(2);
17
18// 直前にある兄弟「要素」を取得します (コメントノードは無視されます)
19$previousElement = $pi->previousElementSibling;
20
21// 取得した要素のタグ名を出力します
22if ($previousElement !== null) {
23    // "p" が出力されます
24    echo $previousElement->tagName;
25}
26
27?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

Dom\Element|null

このプロパティは、現在のXML/HTML文書内において、この要素の直前に位置する兄弟要素を返します。もし直前に兄弟要素が存在しない場合は、nullが返されます。

関連コンテンツ

関連プログラミング言語