【PHP8.x】previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日: 
基本的な使い方
『previousSiblingプロパティは、DOMツリーにおいて、現在のノードの直前に位置する兄弟ノードを保持するプロパティです。兄弟ノードとは、同じ親ノードを共有するノード群のことを指します。このプロパティにアクセスすると、現在のノードの一つ前に存在するノードをDom\Nodeオブジェクトとして取得することができます。もし直前に兄弟ノードが存在しない場合、つまり現在のノードがその親における最初の子ノードである場合には、このプロパティはnullを返します。このnullが返される特性は、特定のノードから先頭に向かって、すべての兄弟ノードを順番にたどるようなループ処理の終了条件として頻繁に利用されます。このプロパティが返すノードは、要素ノードに限らず、要素間の空白や改行を含むテキストノードや、コメントノードなども対象となります。そのため、HTMLドキュメントを操作する際には、意図しないテキストノードが取得される可能性がある点に注意が必要です。なお、このプロパティは読み取り専用であり、値の代入によってノードの順序を変更することはできません。
構文(syntax)
1<?php 2 3$html = '<ul><li>First</li><li>Second</li></ul>'; 4 5$dom = new \Dom\Document(); 6@$dom->loadHTML($html); 7 8// 2番目の <li> 要素を取得します 9$secondLi = $dom->getElementsByTagName('li')[1]; 10 11// 2番目の <li> 要素の直前の兄弟ノード (最初の <li> 要素) を取得します 12$previousNode = $secondLi->previousSibling; 13 14// 取得したノードのテキスト内容を出力します 15echo $previousNode->textContent; // "First" 16 17?>
引数(parameters)
戻り値(return)
?Dom\Node
現在のノードの直前の兄弟ノード、または兄弟ノードが存在しない場合は null を返します。