2013-01-25 53 views
0

我爲一個automoto網站創建一個刮板,首先我想要獲得所有制造商,然後爲每個製造商提供模型的所有鏈接,但是使用下面的代碼,我只獲得列表中的第一個模型。爲什麼?用於提取鏈接的Xpath

<?php 

$dom = new DOMDocument(); 
@$dom->loadHTMLFile('http://www.auto-types.com'); 
$xpath = new DOMXPath($dom); 
$entries = $xpath->query("//li[@class='clearfix_center']/a/@href"); 
$output = array(); 
foreach($entries as $e) { 
    $dom2 = new DOMDocument(); 
    @$dom2->loadHTMLFile('http://www.auto-types.com' . $e->textContent); 
    $xpath2 = new DOMXPath($dom2); 
    $data = array(); 
    $data['newLinks'] = trim($xpath2->query("//div[@class='modelImage']/a/@href")->item(0)->textContent); 

    $output[] = $data; 
} 

echo '<pre>' . print_r($output, true) . '</pre>'; 

?> 

,所以我需要得到:奔馳/ 100,奔馳/ 200,奔馳/ 300,但現在我的劇本我只得到了第一個鏈接,以便奔馳/ 100 ...

請幫助

回答

1

您需要遍歷結果而不是僅取第一項:

$items = $xpath2->query("//div[@class='modelImage']/a/@href"); 
$links = array(); 
foreach($items as $item) { 
    $links[] = $item->textContent; 
} 
$data['newLinks'] = implode(', ', $links);