Xpath只获取文本节点而不是元素的其他节点

时间:2017-11-01 03:38:23

标签: php dom xpath

我有以下结构:

<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

Sry my bad english

1 个答案:

答案 0 :(得分:1)

您需要做的就是规范您的第一个孩子text()子节点的所有空白(div)。

这应该

$xg1 = $xpath->query('//div[@class="xg1"]/*[1]/text()[normalize-space()]');

这应该会在DOMText中为您提供一个DOMNodeList节点。

相关问题