【PHP8.x】nextSiblingプロパティの使い方
nextSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
nextSiblingプロパティは、Dom\Notationオブジェクトの次の兄弟ノードを保持するプロパティです。
Dom\Notationクラスは、XMLの文書型定義(DTD)内で宣言される記法(notation)要素を表すためのクラスであり、DOM (Document Object Model) ツリーの一部として扱われます。このプロパティは、現在のDom\Notationノードと親子関係が同じで、かつDOMツリーの順序において現在のノードの直後に位置するノードにアクセスするために使用されます。
具体的には、あるDom\Notationノードから、同じ階層にある次の要素やテキストノードなどを参照したい場合に、このnextSiblingプロパティを利用します。もし現在のノードの直後に兄弟ノードが存在しない場合、このプロパティはnullを返します。この機能は、XMLドキュメントのDOMツリーを順次走査し、特定のノードから次のノードへと移動しながら処理を行う際などに役立ちます。返されるノードはDom\Nodeオブジェクトであり、その具体的な型は次の兄弟ノードの種類によって異なります。
構文(syntax)
1<?php 2 3$xmlString = <<<XML 4<?xml version="1.0" encoding="utf-8" ?> 5<!DOCTYPE doc [ 6 <!NOTATION notation1 PUBLIC "urn:public-id-1"> 7 <!NOTATION notation2 PUBLIC "urn:public-id-2"> 8]> 9<doc></doc> 10XML; 11 12$doc = new DOMDocument(); 13$doc->loadXML($xmlString); 14 15// 'notation1' という名前の Notation ノードを取得します。 16$firstNotation = $doc->doctype->notations->getNamedItem('notation1'); 17 18// nextSibling プロパティは、同じ階層にある次のノードを返します。 19$next = $firstNotation->nextSibling; 20 21// 次のノードが存在すれば、そのノード名を出力します。 22if ($next instanceof \Dom\Notation) { 23 echo $next->nodeName; // "notation2" 24} 25 26?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
Dom\Node|null
現在のノードの直後に続く兄弟ノードを返します。兄弟ノードが存在しない場合は、nullを返します。