【PHP8.x】previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
previousSiblingプロパティは、Dom\DocumentTypeクラスに属し、現在のDOCTYPEノードの直前の兄弟ノードを保持するプロパティです。
Dom\DocumentTypeクラスは、HTMLやXMLドキュメントのDOCTYPE宣言、つまりドキュメントの型情報を定義する部分(例えば「<!DOCTYPE html>」のような記述)を表すノードです。このpreviousSiblingプロパティは、ドキュメントの構造を表すDOMツリーにおいて、現在のノードと親を共有し、現在のノードの直前に位置する別のノード(兄弟ノード)への参照を提供します。兄弟ノードとは、同じ親ノードを持つ、並んで位置するノードのことです。
Dom\DocumentTypeノードは、通常ドキュメントの最初の子要素として配置されることが多いため、このプロパティの値はnullになるケースが多いです。しかし、例えばXMLドキュメントでDOCTYPE宣言の前にXML宣言(<?xml version="1.0"?>のような処理命令)やコメントノードなどが存在する場合、それらのDom\NodeオブジェクトがpreviousSiblingとして返されることがあります。直前の兄弟ノードが存在しない場合は、このプロパティはnullを返します。このプロパティは、DOMツリーを探索し、隣接するノードの情報を取得する際に利用されます。
構文(syntax)
1<?php 2 3// DOMDocumentオブジェクトを作成し、HTMLドキュメントを読み込みます 4// この例では、<!DOCTYPE html> の前に兄弟ノードが存在しないシンプルなHTMLを使用します 5$dom = new DOMDocument(); 6$dom->loadHTML('<!DOCTYPE html><html><head></head><body></body></html>'); 7 8// ドキュメントからDocumentTypeノードを取得します 9// これは通常、<!DOCTYPE html> などの宣言を表すノードです 10$documentType = $dom->doctype; 11 12// DocumentTypeノードの直前の兄弟ノードを取得します 13// 直前の兄弟ノードが存在しない場合、nullが返されます 14$previousSiblingNode = $documentType->previousSibling; 15 16// 取得したノード(またはnull)を出力して確認します 17var_dump($previousSiblingNode); 18 19?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
Dom\Node|null
このプロパティは、現在のノードの直前の兄弟ノードを返します。兄弟ノードが存在しない場合は null を返します。