2016-11-19 5 views
0

Я прочитал много вопросов stackoverflow, и я использую этот код, но я не знаю, почему это не работает.
Вот код.Значение объекта DOMXPath опущено

$url = 'http://m.cricbuzz.com/cricket-schedule'; 
$source = file_get_contents($url); 

$doc = new DOMDocument; 
@$doc->loadHTML($source); 

$xpath = new DOMXPath($doc); 
$classname = "list-group"; 
$events = $xpath->query("//*[contains(@class, '$classname')]"); 

var_dump($xpath); 

Можете ли вы проверить его, почему это не работает на самом деле я хочу, чтобы получить данные из list-group

+0

Чтобы получить значение, используйте 'оценка', см. Https://stackoverflow.com/a/45010743/287948 –

ответ

0

Код корректен. Это правильно выбирает список DOM узлов, имеющий заданное значение атрибута класса в переменную $events:

$events = $xpath->query("//*[contains(@class, '$classname')]"); 

, который является экземпляром DOMNodeList. Затем вы должны перебрать список и получить нужные данные. от $events. Например, если вам нужен внешний HTML для узлов, использовать что-то вроде этого:

foreach ($events as $e) { 
    printf("<<<<<\n%s\n>>>>>\n", $e->ownerDocument->saveXML($e)); 
} 

P.S .: Я бы переименовать $events в $elements.

+0

этот код не работает для меня, я проверил его в' var_dump', он дал мне это значение объекта опущено ' –

+0

Есть ли какие-либо проблемы на моем сервере wamp –

+0

@AzeemHaider, проверьте [this] (https://eval.in/680762) скрипку. Я заменил 'file_get_contents()' здесь документом, так как сервер его не разрешает. Также попробуйте 'echo' или' printf' вместо 'var_dump'. Возможно, у вас установлено некоторое расширение, которое переопределяет поведение 'var_dump' (' xdebug', я думаю) –

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