【PHP8.x】previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『previousSiblingプロパティは、現在のコメントノードの直前に位置する兄弟ノードを保持するプロパティです。DOM(Document Object Model)では、HTMLやXML文書はツリー構造として扱われます。この構造において、同じ親ノードを持つ同じ階層のノード同士を「兄弟ノード」と呼びます。このプロパティを利用することで、特定のコメントノードを基準として、そのすぐ手前に隣接しているノードにアクセスできます。取得されるノードの種類は限定されず、要素(DOMElement)、テキスト(DOMText)、あるいは別のコメント(DOMComment)など、様々な可能性があります。もし、現在のコメントノードが親ノードの最初の子ノードである場合、直前には兄弟ノードが存在しないため、このプロパティはnullを返します。このプロパティは読み取り専用であり、値の取得のみが可能です。ノードの順序を変更するなど、DOM構造を操作するためには使用できません。
構文(syntax)
1<?php 2// XML文字列を準備します。child1要素の次にコメントがあります。 3$xmlString = "<root><child1/><!-- This is a comment --><child2/></root>"; 4 5// DOMDocumentオブジェクトを作成してXMLを読み込みます 6$dom = new DOMDocument(); 7$dom->loadXML($xmlString); 8 9// XPathを使ってコメントノードを取得します 10$xpath = new DOMXPath($dom); 11$commentNode = $xpath->query('//comment()')->item(0); 12 13// コメントノードの直前の兄弟ノードを取得します 14$prevNode = $commentNode->previousSibling; 15 16// 直前の兄弟ノードのタグ名を出力します 17// 結果として "child1" が表示されます 18echo $prevNode->tagName; 19?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMNode|null
このプロパティは、現在の DOMComment ノードの直前の兄弟ノードを返します。直前に兄弟ノードがない場合は null を返します。