【PHP8.x】previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『previousSiblingプロパティは、現在のノードの直前に位置する兄弟ノードを保持するプロパティです。このプロパティは、DOMツリーを構成するすべてのノードの基本となるDom\Nodeクラスで定義されており、Dom\Documentクラスはこれを継承しています。しかし、Dom\DocumentオブジェクトはXMLやHTML文書全体を表すルートノードであり、DOMツリーの最上位に位置するという特別な役割を持ちます。定義上、ルートノードには親ノードが存在しません。兄弟ノードとは、同じ親ノードを持つノード同士の関係を指すため、親を持たないDom\Documentオブジェクトには兄弟ノードも存在し得ません。したがって、Dom\DocumentオブジェクトのpreviousSiblingプロパティにアクセスした場合、その値は常にnullとなります。他の種類の子ノード、例えばDom\ElementやDom\Textなどでは、このプロパティを使って文書構造内での前の要素を辿ることができますが、文書全体を表すDom\Documentにおいては、このプロパティが具体的なノードを指すことはありません。
構文(syntax)
1<?php 2 3$doc = new Dom\Document(); 4$doc->loadXML('<root><item-a/><item-b/></root>'); 5 6$itemB = $doc->getElementsByTagName('item-b')->item(0); 7 8// item-b の直前の兄弟ノードを取得します 9$previousNode = $itemB->previousSibling; 10 11// 取得したノードのノード名を出力します 12echo $previousNode->nodeName; // 出力: item-a 13 14?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
Dom\Node|null
このプロパティは、現在のノードの直前の兄弟ノードを返します。兄弟ノードがない場合は null を返します。