0

我是 Xpath 新手。我用我的 XPath Firefox 插件测试了一个查询,它返回了一个完美的结果。但是,当我在 PHP 中运行查询并执行 var_dump() 时,我没有得到任何结果。只需输出类似于:

class DOMNodeList#4 (0) {
}

PHP 接受我的表达式为有效。到目前为止,我已经删除了作为浏览器生成查询一部分的 tbody。此外,我什至尝试查询 ("*") 没有任何结果。我还能尝试什么?我的查询如下

$page = curl_exec($ch);

# Close the PHP/CURL session
curl_close($ch);

// Create new PHP DOM document
$dom = new DOMDocument;
// Load html from curl request into document model
@$dom->loadHTML($page);
$xpath = new DOMXPath($dom);

//$tableRows = $xpath->query("//id('divResults')/x:table/x:tbody/x:tr");
//$tableRows = $xpath->query("id('divResults')/table/tbody/tr");
//$tableRows = $xpath->query('/*');
$tableRows = $xpath->query('*');

var_dump($tableRows);
4

1 回答 1

0

出于某种原因, var_dump() 不起作用。这是一些可以完成工作的代码。

$dom = new DOMDocument;
if (!$dom->loadHTML($page)) throw new Exception (implode (",", libxml_get_errors()));
$xpath = new DOMXPath($dom);
$entries = $xpath->query($xpathExpr);
if (!$entries) throw new Exception ("XPath evaluation error");
foreach ($entries as $entry)
    echo "name: {$entry->nodeName}<br/>path: ".$entry->getNodePath()."<br/>value: {$entry->nodeValue}";
于 2013-10-06T17:05:09.327 回答