【PHP8.x】nodeValueプロパティの使い方
nodeValueプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
nodeValueプロパティは、DOMElementノードの値を保持するプロパティです。DOMElementは、XMLドキュメントやHTMLドキュメントにおける要素(タグ)を表すオブジェクトであり、nodeValueプロパティを通じて、その要素が持つテキストコンテンツを取得または設定できます。
具体的には、要素ノードがテキストノード(例えば <p>This is text.</p> の This is text. の部分)を持っている場合、nodeValueプロパティはそのテキストノードの値を返します。要素ノード自体が直接テキストノードを持っていない場合、nodeValueプロパティは通常 null を返します。
nodeValueプロパティは、文字列を代入することで要素のテキストコンテンツを更新することも可能です。ただし、この操作は要素の子ノードを全て削除し、新しいテキストノードとして代入された文字列を追加する形で行われます。したがって、要素が既に複数の子ノード(テキストノード、要素ノードなど)を持っている場合、それらは全て削除されることに注意が必要です。
このプロパティは、DOMを操作してドキュメントの内容を動的に変更する際に非常に重要です。例えば、フォームの入力値を読み取って特定の要素に表示したり、データベースから取得したデータをHTMLドキュメントに挿入したりする際に活用できます。
要素のテキストコンテンツを安全に操作するためには、textContentプロパティや、createTextNodeメソッドなど、他の関連するDOM APIと組み合わせて使用することを推奨します。特に、HTMLエンティティのエスケープ処理が必要な場合は、textContentプロパティを使用すると安全です。
構文(syntax)
1<?php 2$dom = new DOMDocument(); 3$element = $dom->createElement('example', 'Original Text'); 4 5// DOMElement オブジェクトの nodeValue プロパティを読み取る 6$currentValue = $element->nodeValue; 7 8// DOMElement オブジェクトの nodeValue プロパティに新しい値を代入する 9$element->nodeValue = 'New Text'; 10?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|null
DOMElement オブジェクトのテキストコンテンツ、または属性値の文字列を返します。ノードがテキストノードや属性ノードでない場合は null を返します。