2011-03-31 89 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

相关问题