Простой HTML DOM получает только 1 элемент - PullRequest
0 голосов
/ 23 сентября 2011

Я слежу за упрощенной версией учебника по чистке NetTuts, который в основном находит все div с class=preview

http://net.tutsplus.com/tutorials/php/html-parsing-and-screen-scraping-with-the-simple-html-dom-library/comment-page-1/#comments

Это мой код. Проблема в том, что когда я считаю $items, я получаю только 1, поэтому он получает только первый div с class=preview, а не все.

$articles = array();   
$html = new simple_html_dom();
$html->load_file('http://net.tutsplus.com/page/76/');

$items = $html->find('div[class=preview]');  
echo "count: " . count($items);

1 Ответ

1 голос
/ 23 сентября 2011

Попробуйте использовать DOMDocument и DOMXPath:

$file = file_get_contents('http://net.tutsplus.com/page/76/');
$dom = new DOMDocument();
@$dom->loadHTML($file);
$domx = new DOMXPath($dom);
$nodelist = $domx->evaluate("//div[@class='preview']");
foreach ($nodelist as $node) { print $node->nodeValue; }
...