【PHP8.x】previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
previousSiblingプロパティは、DOMAttrクラスに属し、現在のノードの直前の兄弟ノードを保持するプロパティです。このプロパティは、DOM (Document Object Model) の一般的な設計において、現在のノードと同じ親を持つノードの中で、直前に位置するノードを参照するために利用されます。
しかし、DOMAttrはHTMLやXML要素の属性を表すための特殊なノードです。属性ノードは、通常のDOMツリー構造において要素ノードの子として直接配置されるわけではなく、要素ノードが持つ属性のリストの一部として扱われます。このため、DOMAttrオブジェクトは、一般的な要素ノードやテキストノードのように、共通の親ノードを持つ「兄弟ノード」という概念が適用されません。
したがって、PHPのDOM拡張機能では、DOMAttrオブジェクトのpreviousSiblingプロパティにアクセスしても、常にnullが返されます。これは、DOMAttrがDOMツリー内の兄弟関係を持たないことによる設計上の挙動です。もし、属性値を取得したい場合はnodeValueプロパティを、属性名を取得したい場合はnameプロパティを使用してください。DOMAttrオブジェクトに対して、DOMツリー上の位置関係を把握するためにこのプロパティを利用することはできませんので、ご留意ください。
構文(syntax)
1<?php 2$dom = new DOMDocument(); 3$element = $dom->createElement('example'); 4$attr = $dom->createAttribute('id'); 5$attr->value = 'myid'; 6$element->setAttributeNode($attr); 7 8$previousSiblingNode = $attr->previousSibling; 9 10var_dump($previousSiblingNode); 11?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMNode|null
このプロパティは、現在の属性ノードの直前に位置する兄弟ノードを返します。直前の兄弟ノードが存在しない場合は、nullを返します。