【PHP8.x】previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『previousSiblingプロパティは、DOMツリーにおいて、現在のノードの直前に位置する兄弟ノードを保持するプロパティです。DOM(Document Object Model)では、HTMLやXML文書がツリーのような階層構造として扱われ、その構成要素は「ノード」と呼ばれます。同じ親ノードの配下にあるノード同士は「兄弟ノード」という関係になります。このpreviousSiblingプロパティにアクセスすると、現在のノードと同じ階層にあり、かつその直前に配置されているノードをDOMNodeオブジェクトとして取得できます。例えば、DOMDocumentTypeノード(文書型宣言)の直前にXML宣言やコメントノードが存在する場合、このプロパティはそのノードを返します。もし直前に兄弟となるノードが存在しない場合、このプロパティの値はnullとなります。したがって、このプロパティを利用する際は、取得した値がnullでないことを確認してから処理を行うことが重要です。このプロパティは読み取り専用であり、文書の構造を前方、つまり文書の先頭方向へたどる際に役立ちます。』
構文(syntax)
1<?php 2 3$xmlString = <<<XML 4<?xml version="1.0" encoding="UTF-8"?> 5<!-- これは前の兄弟ノード(コメント)です --> 6<!DOCTYPE root> 7<root /> 8XML; 9 10$doc = new DOMDocument(); 11$doc->loadXML($xmlString); 12 13// DOMDocumentTypeノード(<!DOCTYPE root>)を取得します 14$doctype = $doc->doctype; 15 16// previousSiblingプロパティで、直前の兄弟ノードを取得します 17$previousNode = $doctype->previousSibling; 18 19// 取得したノード(この場合はコメントノード)のテキスト内容を出力します 20var_dump($previousNode->nodeValue); 21 22?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMNode|null
DOMDocumentType オブジェクトが持つ、このノードの直前の兄弟ノードを表す DOMNode オブジェクト、または兄弟ノードが存在しない場合は null を返します。