我是一个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);
答案 0 :(得分: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}";