【PHP8.x】nodeNameプロパティの使い方
nodeNameプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
nodeNameプロパティは、DOMNotationクラスが表すXMLの記法(NOTATION)の名前を保持するプロパティです。このプロパティは、XML文書のDTD(文書型定義)内で定義されたNOTATION要素の識別子、つまり名前を取得するために使用されます。
XMLにおけるNOTATIONは、外部エンティティの形式(例:画像ファイルの種類、特定のアプリケーションで処理されるデータ形式など)を宣言するために用いられます。DOMNotationクラスは、このようなNOTATIONの定義をPHPプログラム上でオブジェクトとして表現するためのものであり、nodeNameプロパティは、そのNOTATIONが持つ固有の名前(識別子)を提供します。
このプロパティの値は常に文字列型で、NOTATIONの名称そのものを返します。例えば、XMLのDTD内で<NOTATION name="image-jpeg" PUBLIC "..." >のように定義されている場合、このプロパティは "image-jpeg" という文字列を返します。これにより、プログラムがどの記法を参照しているのかを明確に判別し、適切な処理を行うことが可能になります。
nodeNameプロパティは、DOMNodeクラスから継承されており、XMLドキュメント内の要素や属性など、他の様々なノードタイプにおいても共通してそのノードの識別名を取得するために用いられる、標準的なプロパティの一つです。このプロパティは読み取り専用であるため、プログラムからその値を変更することはできません。XML文書の構造を解析し、特定のNOTATIONに関する情報を取得したい場合に非常に役立ちます。
構文(syntax)
1<?php 2 3// NOTATIONを含むXMLドキュメントを定義 4$xmlString = <<<XML 5<!DOCTYPE example [ 6 <!NOTATION gif SYSTEM "image/gif"> 7]> 8<example/> 9XML; 10 11$dom = new DOMDocument(); 12$dom->loadXML($xmlString); 13 14// DOMDocumentTypeオブジェクトからNOTATIONのリスト(DOMNamedNodeMap)を取得 15$notations = $dom->doctype->notations; 16 17if ($notations && $notations->length > 0) { 18 // 最初のDOMNotationオブジェクトを取得 19 $notation = $notations->item(0); 20 21 // DOMNotationオブジェクトのnodeNameプロパティにアクセスし、ノード名を出力 22 // この場合、"gif" が出力される 23 echo $notation->nodeName; 24} 25 26?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
DOMNotation オブジェクトのノード名を文字列で返します。