【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を返します。

関連コンテンツ

関連プログラミング言語