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

関連コンテンツ

関連プログラミング言語