【PHP8.x】nodeValueプロパティの使い方
nodeValueプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
nodeValueプロパティは、Dom\Entityクラスに属し、ノードの値を保持するプロパティです。Dom\Entityクラスは、XMLやHTMLのDTD(Document Type Definition)で定義される「実体(エンティティ)」を表します。実体とは、文書内で頻繁に使用されるテキストや特殊文字などを名前で参照できるように定義し、再利用性を高めるための仕組みです。
このnodeValueプロパティは、通常、ノードのテキストコンテンツを取得するために使用されますが、Dom\Entityインスタンスに対してこのプロパティを参照すると、常にnullを返します。これは、DOM(Document Object Model)の仕様上、実体ノード自体が直接的なテキスト値を持つわけではないためです。実体は、その参照箇所で別のコンテンツに「置き換えられる」ものであり、実体ノードそのものが特定の値を保持する役割ではありません。
したがって、Dom\Entityオブジェクトから実体の実際のコンテンツ(置換テキスト)を取得するためには、このnodeValueプロパティではなく、実体の持つ内容にアクセスするための別のプロパティやメソッドを利用する必要があります。このnodeValueプロパティは読み取り専用であり、値を設定することはできません。
構文(syntax)
1<?php 2 3// Dom\Document を作成し、DTDでエンティティを定義します。 4$dom = new Dom\Document(); 5$dom->loadXML('<?xml version="1.0"?> 6<!DOCTYPE doc [ 7 <!ENTITY myEntity "Some Entity Text"> 8]> 9<root/>'); 10 11// DTDから "myEntity" という名前の Dom\Entity ノードを取得します。 12// Dom\Entity は直接インスタンス化できないため、このようにして取得します。 13$entityNode = $dom->doctype->entities->getNamedItem('myEntity'); 14 15// Dom\Entity の nodeValue プロパティにアクセスする構文です。 16// Dom\Entity の nodeValue は常に NULL を返します。 17$value = $entityNode->nodeValue; 18 19?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|null
このプロパティは、ノードのテキストコンテンツを表す文字列、またはノードにテキストコンテンツがない場合はnullを返します。