【PHP8.x】Dom\ProcessingInstruction::nextElementSiblingプロパティの使い方
nextElementSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
nextElementSiblingプロパティは、DOMツリーにおいて、現在の処理命令ノード(Dom\ProcessingInstruction)の直後にある要素ノード(Dom\Element)を保持するプロパティです。このプロパティにアクセスすると、現在のノードと同じ親を持つ兄弟ノードの中から、次に出現する最初の要素ノードを取得できます。テキストノードやコメントノードなどはすべて無視され、HTMLタグに相当する要素ノードのみが対象となります。もし直後に該当する要素ノードが存在しない場合、このプロパティはnullを返します。類似のnextSiblingプロパティがノードの種類を問わずに次のノードを返すのに対し、nextElementSiblingは要素ノードに限定して取得できるため、XMLやHTML文書を解析する際に特定のタグ要素を順番に処理したい場合に非常に便利です。なお、このプロパティは読み取り専用であり、値の取得のみが可能です。このプロパティへの代入によってDOMの構造を直接変更することはできません。
構文(syntax)
1<?php 2$document = new \Dom\Document(); 3$document->loadXML( 4 '<root><?pi-target content?><!-- comment --><element>Next</element></root>' 5); 6 7// 処理命令ノード (<?pi-target content?>) を取得します 8$processingInstruction = $document->documentElement->firstChild; 9 10// nextElementSiblingプロパティは、コメント等のノードを無視して 11// 次の「要素」ノードを取得します 12$nextElement = $processingInstruction->nextElementSibling; 13 14// 取得した要素のタグ名を出力します (null の場合は何も出力されません) 15echo $nextElement?->tagName; 16?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
Dom\Element|null
このプロパティは、現在の処理命令ノードの次にある兄弟要素ノードを返します。兄弟要素ノードが存在しない場合は null を返します。