2014-12-09 3 views
0

Этот фрагмент кода не работает:простой запрос XPath не работает

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; 
?> 
+2

Было бы полезно, если вы определили, какая линия была линия 13 !!!! – RiggsFolly

+0

Вы уверены, что вам не нужно указывать пространство имен? – JKesMc9tqIQe9M

+1

@RiggsFolly Я думаю, мы можем заключить, что это линия с выражением XPath на нем! – JKesMc9tqIQe9M

ответ

3

Нет ничего плохого в вашем запросе xpath, так как это правильный синтаксис, и узел существует. Проблемная линия такова:

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

Вы не загружаете страницу результатов, полученную от вашего запроса на завивание. Для того, чтобы загрузить ответ,

Используйте вместо этого:

Here's a sample output you'd expect

+0

Вы правы. Очевидное скрывалось на моих глазах :) –

+1

@MarcoMarsala да очень тонкий, но важный. рад это помогло – Ghost

Смежные вопросы