2011-09-19 127 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 />"; 
    } 

}