【PHP8.x】wholeTextプロパティの使い方

wholeTextプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『wholeTextプロパティは、現在のTextノードと、DOMツリー上で論理的に隣接するすべてのTextノードのテキスト内容を連結した文字列を保持する読み取り専用のプロパティです。XMLやHTML文書では、テキストが要素ノードやコメントノードなどを間に挟まずに連続している箇所でも、内部的に複数のTextノードに分割されて表現されることがあります。このプロパティは、そのような分割されたテキストノード群を、あたかも一つの連続したテキストであるかのようにまとめて取得するために使用されます。textContentプロパティがそのノード自身のテキストのみを返すのに対し、wholeTextプロパティは、そのノードの前後に直接つながっている他のTextノードやCDATASectionノードの内容もすべて結合した結果を返します。これにより、DOMNode::normalize()メソッドを呼び出してDOM構造を実際に変更することなく、文書内での見た目通りの連続したテキストデータを簡単に取得することが可能になります。

構文(syntax)

1<?php
2
3$html = "<p>ここは最初のテキストノードです。<!-- comment -->ここは次のテキストノードです。</p>";
4
5$doc = new Dom\Document();
6$doc->loadHTML($html);
7
8// 最初の <p> 要素の最初の子ノード (テキストノード) を取得します
9$textNode = $doc->getElementsByTagName('p')->item(0)->firstChild;
10
11// wholeTextプロパティにアクセスして、論理的に隣接するすべてのテキストノードの内容を取得します
12$fullText = $textNode->wholeText;
13
14echo $fullText; // "ここは最初のテキストノードです。ここは次のテキストノードです。" と出力されます
15
16?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

Dom\Text::wholeTextプロパティは、ノードのすべてのテキストコンテンツを連結した文字列を返します。

関連コンテンツ

関連プログラミング言語