【PHP8.x】DOMProcessingInstruction::previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
previousSiblingプロパティは、DOMツリーにおいて、現在の処理命令ノード(DOMProcessingInstruction)の直前に位置する兄弟ノードを保持するプロパティです。XMLやHTML文書は、プログラム上では階層的なツリー構造(DOMツリー)として扱われ、同じ親を持つノード同士は兄弟関係にあります。このプロパティにアクセスすると、現在のノードと同じ階層にあり、その直前に記述されているノードをDOMNodeオブジェクトとして取得できます。もし現在のノードが親ノードの最初の子ノードである場合、直前の兄弟ノードは存在しないため、このプロパティの値は null となります。取得されるノードの種類は、要素ノードやテキストノード、コメントノードなど様々です。このプロパティは読み取り専用であるため、値を代入してDOMの構造を直接変更することはできません。文書の構造を前の要素に向かって順番にたどるような処理を実装する際に利用されます。
構文(syntax)
1<?php 2 3$xml = '<?xml version="1.0"?><root><child1/><?target data?></root>'; 4$doc = new DOMDocument(); 5$doc->loadXML($xml); 6 7// DOMProcessingInstructionノードを取得 8// この例では、<root>の子ノードの2番目 9$pi = $doc->documentElement->childNodes->item(1); 10 11// 直前の兄弟ノードを取得する 12$prevNode = $pi->previousSibling; 13 14// 直前の兄弟ノード(<child1>)の名前を出力 15if ($prevNode) { 16 echo $prevNode->nodeName; 17} 18 19?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMNode|null
このプロパティは、現在のノードの直前の兄弟ノードを表すDOMNodeオブジェクト、または直前の兄弟ノードが存在しない場合はnullを返します。