简单的xpath查询不起作用

时间:2014-12-09 22:11:18

标签: php html curl xpath domdocument

这段代码不起作用:

Notice: Trying to get property of non-object in test.php on line 13

但是xpath查询看起来显然是正确的......并且提供的url显然有一个标记。 我试图用'// html'替换查询,但没有运气。 我总是使用xpath,这是一种奇怪的行为。

<?php
$_url = 'http://www.portaleaste.com/it/Aste/Detail/876989';

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $_url);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
$result2 = curl_exec($ch2);
curl_close($ch2);

$doc2 = new DOMDocument();
@$doc2->load($result2);
$xpath2 = new DOMXpath($doc2);
$txt = $xpath2->query('//p[@id="descrizione"]')->item(0)->nodeValue;
echo $txt;
?>

1 个答案:

答案 0 :(得分:3)

您的xpath查询没有任何问题,因为它是正确的语法并且节点确实存在。有问题的一行是:

@$doc2->load($result2);
// DOMDocument::load — Load XML from a file

您没有正确加载从卷曲请求中获得的结果页面。要加载回复,

请改用:

@$doc2->loadHTML($result2);
// DOMDocument::loadHTML — Load HTML from a string

Here's a sample output you'd expect