【PHP8.x】previousSiblingプロパティの使い方
previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
previousSiblingプロパティは、DOM (Document Object Model) において、現在のノードの直前の兄弟ノードを表す読み取り専用のプロパティです。Dom\CharacterData クラスに属し、CharacterData オブジェクト(例えば、テキストノード)の直前の兄弟ノードを取得するために使用されます。
このプロパティは、現在のノードの兄弟ノードが存在しない場合、または現在のノードが最初の兄弟ノードである場合には null を返します。兄弟ノードとは、同じ親ノードを持つノードのことです。
previousSibling プロパティを使用することで、DOMツリー内を移動し、特定ノードの前にあるノードを効率的に取得することができます。これは、例えば、テキストノードの直前にある要素ノードの属性を調べたり、コンテンツの構造を解析したりする場合に役立ちます。
このプロパティは読み取り専用であるため、値を変更することはできません。ノードの順序を変更するには、DOM操作(例えば、insertBefore メソッドや appendChild メソッド)を使用する必要があります。previousSiblingプロパティは、DOMツリーの構造をプログラム的に解析し、操作するための重要な手段となります。システムエンジニアがDOMを操作する際に、ノード間の関係性を把握し、適切な処理を行う上で、このプロパティの理解は不可欠です。
構文(syntax)
1<?php 2 3$html = '<p>First Text<b>Bold Text</b></p>'; 4$doc = new DOMDocument(); 5$doc->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); 6 7// <b> 要素を取得 8$boldElement = $doc->getElementsByTagName('b')->item(0); 9 10// <b> 要素の直前の兄弟ノード (DOMCharacterData を継承した DOMText) を取得 11$previousNode = $boldElement->previousSibling; 12 13// 取得したノードが存在する場合、その内容を出力 14if ($previousNode !== null) { 15 // "First Text" と出力されます 16 echo $previousNode->nodeValue; 17} 18 19?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMNode|null
このプロパティは、現在のDOMCharacterDataノードの直前の兄弟ノードであるDOMNodeオブジェクト、または兄弟ノードが存在しない場合はnullを返します。