【PHP8.x】nodeValueプロパティの使い方
nodeValueプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
nodeValueプロパティは、Dom\Notationクラスのノードの値を保持するプロパティです。Dom\Notationクラスは、XML文書のDOCTYPE宣言で定義される、外部エンティティや処理命令で使用される「記法(Notation)」を表すためのDOMノードです。
一般的なDOMノードのnodeValueプロパティは、そのノードのテキストコンテンツやコメント内容などを取得するために使用されますが、Dom\Notationノードの場合、本質的に直接的なテキスト値や内容を持ちません。そのため、このnodeValueプロパティにアクセスしても、常にnullが返されます。これは、Dom\Notationノードが、値そのものではなく、特定の記法に関するメタ情報(名前、公開識別子、システム識別子など)を保持する構造であるためです。
このプロパティは読み取り専用であり、値を設定しようとしても無視され、効果はありません。Dom\Notationノードが持つ具体的な記法名や、外部リソースへの参照情報を取得したい場合は、nameプロパティ、publicIdプロパティ、およびsystemIdプロパティを使用してください。これにより、記法の詳細な情報を正確に取得することができます。
構文(syntax)
1<?php 2$xml = <<<EOT 3<!DOCTYPE root [ 4 <!NOTATION mynotation SYSTEM "some/system/id"> 5]> 6<root/> 7EOT; 8 9$dom = new DOMDocument(); 10$dom->loadXML($xml); 11 12$doctype = $dom->doctype; 13 14if ($doctype && $doctype->notations && $doctype->notations->length > 0) { 15 $notation = $doctype->notations->item(0); 16 echo $notation->nodeValue; 17} 18?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|null
このプロパティは、ノードのテキストコンテンツを文字列として返します。ノードにテキストコンテンツがない場合は、nullを返します。