【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が返されます。