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