【PHP8.x】nextSiblingプロパティの使い方

nextSiblingプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

nextSiblingプロパティは、現在の属性ノードの次の兄弟ノードを保持するプロパティです。

DOM(Document Object Model)は、HTMLやXML文書の構造をツリー状に表現し、プログラムから操作するための標準的なインターフェースです。このDOMにおいて、nextSiblingプロパティは、あるノードの直後に続く同じ親を持つノード(兄弟ノード)を取得するために一般的に利用されます。

しかし、DOMAttrクラスは、HTMLやXML要素の属性を表すノードです。属性ノードは、通常の要素ノードやテキストノードのようにDOMツリーの「兄弟」を持つ階層構造には含まれません。属性は、親要素に付随する情報と位置づけられるためです。このため、DOMAttrオブジェクトのnextSiblingプロパティにアクセスすると、常にnullが返されます。

したがって、特定の要素の属性リストから別の属性を取得したい場合は、DOMAttrのnextSiblingプロパティではなく、親となるDOMElementオブジェクトのattributesプロパティ(DOMNamedNodeMapを返します)などを利用して、目的の属性を名前で直接取得するアプローチが適切です。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$element = $dom->createElement('example');
4$attribute = $dom->createAttribute('id');
5$attribute->value = 'my-id';
6$element->setAttributeNode($attribute);
7$dom->appendChild($element);
8
9$domAttr = $element->getAttributeNode('id');
10
11$nextSiblingNode = $domAttr->nextSibling;
12
13var_dump($nextSiblingNode);
14?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMNode|null

DOMAttr クラスの nextSibling プロパティは、現在の属性の次の兄弟ノードを表す DOMNode オブジェクト、または兄弟ノードが存在しない場合は null を返します。

【PHP8.x】nextSiblingプロパティの使い方 | いっしー@Webエンジニア