【PHP8.x】firstChildプロパティの使い方
firstChildプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
firstChildプロパティは、Dom\Notationオブジェクトの最初の子ノードを保持するプロパティです。Dom\Notationクラスは、XML文書のDOCTYPE宣言において定義される「表記法」(NOTATION)を表します。この表記法は、XML文書内で外部の非XML形式のデータを参照する際に、そのデータの形式を指定するために利用されます。
通常、PHPのDOM拡張機能におけるノード(Dom\Node)は、firstChildプロパティを通じて、そのノードが持つすべての子ノードのうち、リストの先頭に位置する子ノードを取得できます。しかし、Dom\Notationオブジェクトの特性として、XMLの仕様上、子ノードを持つ構造ではありません。
したがって、Dom\NotationオブジェクトのfirstChildプロパティにアクセスしても、常にnullが返されます。このプロパティは、Dom\NotationクラスがDom\Nodeクラスを継承しているため、すべてのDOMノードが共通して持つプロパティの一部として提供されています。Dom\Notationオブジェクトに対して、具体的な子ノードの取得を目的としてこのプロパティを使用することはできません。
構文(syntax)
1<?php 2$xmlString = <<<XML 3<!DOCTYPE root [ 4 <!NOTATION exampleNotation SYSTEM "example/uri"> 5]> 6<root/> 7XML; 8 9$dom = new DOMDocument(); 10$dom->loadXML($xmlString); 11 12// DOMDocumentからDoctypeを取得し、そこから'exampleNotation'という名前のnotationノードを取得します。 13// $notation は Dom\Notation クラスのインスタンスになります。 14$notation = $dom->doctype->notations->getNamedItem('exampleNotation'); 15 16// Dom\Notation オブジェクトの firstChild プロパティにアクセスする構文 17$firstChildNode = $notation->firstChild; 18?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
?Dom\Node
Dom\Notation クラスの firstChild プロパティは、現在のノードの最初の子ノードを Dom\Node オブジェクトまたは null で返します。子ノードが存在しない場合は null を返します。