Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】Dom\ProcessingInstruction::previousSiblingプロパティの使い方

previousSiblingプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『previousSiblingプロパティは、現在の処理命令ノードの直前に位置する兄弟ノードを保持するプロパティです。DOMツリー構造において、同じ親ノードを持つ同じ階層のノード同士を兄弟ノードと呼びます。このプロパティにアクセスすることで、現在の処理命令ノードのすぐ手前にあるノードをDom\Nodeオブジェクトとして取得できます。取得されるノードの種類は、要素ノードやテキストノード、コメントノードなど様々です。ソースコード上の空白や改行もテキストノードとして認識されることがあるため、注意が必要です。もし、現在のノードがその親ノードにおける最初の子ノードである場合、直前の兄弟ノードは存在しないため、このプロパティはnullを返します。この性質を利用して、特定のノードを起点にDOMツリーを逆方向に探索したり、ループ処理を制御したりすることが可能です。このプロパティは読み取り専用であり、直接値を代入してDOM構造を変更することはできません。』

構文(syntax)

1<?php
2
3$xml = '<root><element_A/><?php_target data?><element_B/></root>';
4
5$doc = new Dom\Document();
6$doc->loadXML($xml);
7
8// 処理命令ノード (<?php_target data?>) を取得
9$pi = $doc->documentElement->childNodes->item(1);
10
11// previousSiblingプロパティで直前の兄弟ノードを取得
12// この場合、<element_A/> ノードが取得される
13$prevNode = $pi->previousSibling;
14
15// 取得したノードのノード名を出力します
16echo $prevNode->nodeName; // 出力: element_A
17
18?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

?Dom\Node

このプロパティは、現在の処理命令ノードの直前の兄弟ノードを返します。直前の兄弟ノードが存在しない場合は、nullを返します。

関連コンテンツ

関連プログラミング言語