'//body/div/text()'
'//body/div/text()[not(normalize-space(text())='')]'
$elements = $xpath->query( '//body/div/* | //body/div/text()' );
foreach( $elements as $element ) {
// как здесь проверить, текстовый текущий узел или нет?
if( $element->nodeType == 3 ) {
// текстовая нода
$tmp = trim($element->c14n());
// убираем пустые ноды
if(! empty($tmp)) {
echo "<p>" . $tmp . "</p>", PHP_EOL;
}
}
// для всех остальных (не текстовых узлов)
else {
echo $element->C14N(), PHP_EOL;
}
}