2011-03-31 132 views
0

我有表即pasing一個html文件,並使用php從表中獲取值?

<tr class="navyLightgrey"> 
<td>3ADC7S1</td><td>SOFTWARE PROJECT MANAGEMENT (IIT Sri Lanka)</td><td align="Center">2009/0</td><td align="Center">Y</td><td align="Center"> 

<a id="dgModules__ctl2_lnkModule" href="http://example.com">View</a> 

      </td> 

      </tr> 

<tr class="navyLightgrey"> 
<td>3ADC7S2</td><td>SOFTWARE ARCHITECTURE (IIT Sri Lanka)</td><td align="Center">2009/0</td><td align="Center">Y</td><td align="Center"> 

<a id="dgModules__ctl3_lnkModule" href="http://example.com" target="_self">View</a> 

      </td> 

      </tr> 

它以這種形式做做一個html頁面上這漫長的課程列表。我想獲得第二個td的值,它說明課程名稱,即每個tr項目的軟件架構(IIT斯里蘭卡)和軟件項目管理(IIT斯里蘭卡)。我想通過html頁面做一個while循環,並獲取每個值並回顯它。謝謝

+1

不是你偷竊數據的網站有一個你可以接口的RSS feed,而不是抓取HTML嗎? – 2011-03-31 09:59:56

+0

*(相關)* [最佳方法解析HTML](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662) – Gordon 2011-03-31 10:14:03

回答

2
$html = 'your html'; 
$dom = new DOMDocument(); 
$dom->loadHTML($html); // or loadHTMLFile 

$xpath = new DOMXPath($dom); 
$arrNodes = $xpath->query('//tr/td[2]/text()'); 

foreach($arrNodes as $node) 
    echo $node->nodeValue . '<br />'; 
1

這是用「HTML DOM解析器」完成的。您可以使用,例如this one

+0

謝謝你,當我找到在html頁面中,我如何告訴它訪問第二個​​? :))+!從我 – pingpong 2011-03-31 10:02:44

+0

這是「foreach」循環,它將遍歷所有匹配的元素。如果你想訪問「TR後的下一個TR,哪裏是一些識別的東西」,你應該添加一些「如果匹配,設置變量發現= 1」並添加循環「如果找到= 1,那麼這是一個TR我需要」 。 – Deele 2011-03-31 10:05:41

相關問題