查询时 XPath 返回 NULL 节点列表

XPath return NULL node list when query

提问人:Cockpiler 提问时间:2/13/2018 最后编辑:NidalCockpiler 更新时间:2/13/2018 访问量:92

问:

不知何故,XPath 的行为非常奇怪:

我将其输入查询()方法,我看到它不是类型(/ html / head / title)的深度嵌套标签,它找到并返回内容,而是深

like (// * [@ id = "ext-gen154"] / div [1] / table / tbody / tr [1] / td [8] / div)它返回 NUll NodeList 对象。任何人请帮助我,我无法在 4 天内解决这个问题。

这是我的剧本:

<?php

$html = file_get_contents('https://etp.gpb.ru/#com/procedure/index');

$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;


$dom->loadHtml($html);
$xPath = new DOMXPath($dom);


echo $node = $xPath->query('//*[@id="ext-gen154"]/div[1]/table/tbody/tr[1]/td[8]/div')
     ->length;


if ($node === NULL){
    echo "Node is NULL <br>";
}

 var_dump($node);

?>
PHP 网页

评论

0赞 Nigel Ren 2/13/2018
您可能会发现此内容是动态的,并且在显示页面时通过 Javascript 加载,因此仅加载页面的源代码是行不通的。
0赞 Cockpiler 2/13/2018
原则上返回数据,这是具有大量嵌套标签的长查询的问题。
0赞 Nigel Ren 2/13/2018
我刚刚查看了带有您的 URL 的页面并查看了源代码,但在源代码中根本找不到“ext-gen”。如果您在 Chrome 中“独立”页面,您可以找到这些元素 - 它们是在 Javascript 中生成的。

答: 暂无答案