【PHP8.x】nodeValueプロパティの使い方
nodeValueプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
nodeValueプロパティは、DOMツリー内のノードが持つ値を保持するプロパティです。具体的には、テキストノードの値やコメントノードのコメント内容などを取得・設定するために使用されます。
しかし、Dom\HTMLDocumentクラスのインスタンスが保持するnodeValueプロパティには、特別な振る舞いがあります。Dom\HTMLDocumentオブジェクトは、ウェブページ全体のようなHTMLドキュメント構造そのものを表すノードであり、それ自体が直接的なテキスト値を持つわけではありません。そのため、このnodeValueプロパティにアクセスしても、ほとんどの場合でnullが返されます。
つまり、Dom\HTMLDocumentオブジェクトに対してnodeValueプロパティを参照しても、HTMLドキュメント全体のテキストコンテンツを取得することはできません。また、このプロパティに値を設定しようとしても、ドキュメントの構造が直接変更されることはなく、多くの場合、効果がないか、あるいは意図しない結果となる可能性があります。
HTMLドキュメント内のテキストコンテンツ全体、または特定の要素のテキスト内容を取得したい場合は、通常、Dom\HTMLDocumentオブジェクトから子孫要素をたどり、各テキストノードのnodeValueプロパティを参照するか、より簡潔なtextContentプロパティを使用するのが一般的です。textContentプロパティは、ノードとそのすべての子孫ノードのテキストコンテンツを連結したものを返します。
このプロパティは、ノードの種類によってその意味合いが異なるため、使用する際はどのノードタイプのnodeValueを参照しているのかを意識することが重要です。
構文(syntax)
1<?php 2 3$htmlDocument = new Dom\HTMLDocument(); 4$nodeValue = $htmlDocument->nodeValue; 5 6?>
引数(parameters)
戻り値(return)
string|null
このプロパティは、DOMノードのテキストコンテンツを文字列として返します。ノードにテキストコンテンツがない場合はnullを返します。