Ответ 1
Пока вы можете повлиять на DOM, вы можете удалить это span
.
$span = $div->getElementsByTagName('span')->item(0);
$div->removeChild($span);
$nodeValue = $div->nodeValue;
Кроме того, просто войдите в текст node $div
.
foreach($div->childNodes as $node) {
if ($node->nodeType != XML_TEXT_NODE) {
continue;
}
$nodeValue = $node;
}
Если вы закончите с большим количеством текстовых узлов и хотите только первого, вы можете break
после первого назначения $nodeValue
.