【PHP8.x】localNameプロパティの使い方
localNameプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
localNameプロパティは、XMLドキュメント型定義(DTD)における記法宣言(Notation Declaration)を表すDOMNotationクラスにおいて、ノードのローカル名を保持するプロパティです。このlocalNameプロパティは、通常、XMLの名前空間が使用されている要素や属性ノードにおいて、名前空間プレフィックスを除いた要素名や属性名の部分を指します。例えば、「prefix:elementName」という要素名があった場合、「elementName」がローカル名に該当します。
しかし、DOMNotationクラスのlocalNameプロパティは常にNULLを返します。これは、記法宣言(Notation)がXMLの名前空間の概念を持たない要素であるためです。XMLの名前空間は、主に要素や属性の名前の衝突を防ぎ、異なるXML語彙を組み合わせる際に利用されますが、DTD内で外部リソースの形式などを宣言する記法宣言は、名前空間の範疇外とされています。
したがって、DOMNotationオブジェクトのlocalNameプロパティにアクセスしても、具体的なローカル名が返されることはなく、常に「値がない」ことを示すNULLが返されるという動作になります。このプロパティを使用する際には、常にNULLが返されることを前提としてプログラムを記述する必要があります。DOMNotationオブジェクトの正確な名前を取得したい場合は、nodeNameプロパティを利用してください。
構文(syntax)
1<?php 2$xmlString = '<!DOCTYPE root [<!NOTATION mynotation SYSTEM "image/png">]><root/>'; 3$dom = new DOMDocument(); 4$dom->loadXML($xmlString); 5$notation = $dom->doctype->notations->item(0); 6echo $notation->localName;
引数(parameters)
引数なし
引数はありません
戻り値(return)
?string
DOMNotationオブジェクトのローカル名を文字列で返します。ローカル名が存在しない場合はnullを返します。