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

関連コンテンツ

関連プログラミング言語