2011-09-19 126 views
0

刮这个我想使用简单的HTML DOM从文件中提取元素,看起来像这样。如何用简单的HTML DOM

  • 该文件有几个看起来相同的表class=sometable
  • 每个表有几个<tr class=sometr>
  • 然后在每个tr中,我有th有标题,并且td有一个类别。

我想提取是所有表中的所有表中的行所有标题class=title及其相应的类别编号class=category。我已经在$html中加载了该文件。有人能告诉我我应该在那之后找到什么吗?我已经尝试过,甚至$collection = $html->find('tr');,并在集合上做了一个vardump,但没有得到任何东西,所以看起来我没有选择正确的。

<table class="sometable"> 
    <tbody> 
    <tr class="sometr"> 
     <th><a class="title">Table 1 Title1</a></th> 
     <td class="category" id="categ-113"></td> 
     <td class="somename">Table 1 Title 1 name</td> 
    </tr> 
    <tr></tr> 
    <tr></tr>       
    </tbody> 
</table> 

<table class="sometable"> 
</table> 

<table class="sometable"> 
</table> 

回答

2

我已经测试this和它的作品

$tables = $dom->find('table[@class="sometable"]'); 

foreach($tables as $table) 
{ 
    $titles = $table->find('a[@class="title"]'); 
    foreach($titles as $title) 
    { 
     echo "Link title = " . $title ."<br />"; 
    } 

    $categories = $table->find('td[@class="category"]'); 
    foreach($categories as $category) 
    { 
     echo "Category id = " . $category->id ."<br />"; 
    } 

    $titles2 = $table->find('td[@class="somename"]'); 
    foreach($titles2 as $title2) 
    { 
     echo "Title2 = " . $title2 ."<br />"; 
    } 

}