2013-12-15 107 views
0

我試圖從表格中提取特定的鏈接,但不顯示任何內容。這是td中的第三個鏈接。我認爲這會工作,但沒有。使用simple_html_dom提取html表格中的鏈接使用simple_html_dom

這裏的代碼:

<?php 

$site = 'site'; 
$html = file_get_html($site); 

foreach($html->find('td a', 3) as $element) 
echo $element->href; 

?> 

下面是HTML

<tr class="evenrow team-600-359"> 
<td> 
Aug 17 
</td> 

<td> 
FT 
</td> 

<td align="right"> 
<a href="link1">Arsenal</a> 
</td> 

<td align="center"> 
<a href="link2">1-3</a> 
</td> 

<td><a href="link3">Aston Villa</a></td> 


<td style="text-align:right;">60,003</td> 
</td> 



<td> 
Premier League 
</td> 
</tr> 

回答

0

你有無效的HTML。這可能是原因。

檢查雙重關閉TD60,003值。

+0

鏈接肯定工程 – Nic

+0

但是解析器可以正確地工作,如果有無效的HTML。 – avall

0

只需使用本地DomDocument

$str = <<<STR 
<tr class="evenrow team-600-359"> 
<td> 
Aug 17 
</td> 

<td> 
FT 
</td> 

<td align="right"> 
<a href="link1">Arsenal</a> 
</td> 

<td align="center"> 
<a href="link2">1-3</a> 
</td> 

<td><a href="link3">Aston Villa</a></td> 


<td style="text-align:right;">60,003</td> 
</td> 



<td> 
Premier League 
</td> 
</tr> 
STR; 



$dom = new DOMDocument(); 
@$dom->loadHTML($str); 
$elements = $dom->getElementsByTagName('td'); 

echo '<pre>' . print_r($dom->saveXML($elements->item(2)), true) . '</pre>'; 

輸出

<td align="right"> 
    <a href="link1">Arsenal</a> 
</td>