У меня есть следующая структура:
<div class="xGh">
<div class="xg1">
<div>I need that text<br><br>
<span>That no</span><br>
<span>Nope</span>
</div>
</div>
</div>
я пытаюсь это:
<?php
$xg1 = $xpath->query('//div[@class="xg1"]/*[1]');
for($i = 0; $i < $xg1 ->length; $i++)
{ echo "xg1 :".$xg1->item($i)->nodeValue."<br/>";
}
?>
Проблема, которая возвращает весь текст с другим текстом, например:
xg1 : I need that textThat noNope
Я нуждаюсь:
xg1 : I need that text
Извини мой плохой английский
Все, что вам нужно сделать, это нормализовать все пробелы для text()
дочерние узлы вашего первого ребенка (div
).
Это должно сделать
$xg1 = $xpath->query('//div[@class="xg1"]/*[1]/text()[normalize-space()]');
Это должно дать вам один DOMText
узел в DOMNodeList
,
Других решений пока нет …