2015-02-10 71 views
0

獲得第三子元素與simple_html_dom

$html = '<tr> 
 
    <td class="aa">SomeText</td> 
 
    <td class="aa">text 2</td> 
 
    <td class="aa" align="right"> 
 
     <font class="aa">text 3</font> 
 
    </td> 
 
    <td class="aa" align="center"> 
 
    </td> 
 
    <td class="aa" align="right">text 4</td> 
 
    <td class="aa" align="right">text 5</td> 
 
</tr> 
 

 
<tr> 
 
    <td class="aa">SomeText</td> 
 
    <td class="aa">text 2</td> 
 
    <td class="aa" align="right"> 
 
     <font class="aa">text 3</font> 
 
    </td> 
 
    <td class="aa" align="center"> 
 
    </td> 
 
    <td class="aa" align="right">text 4</td> 
 
    <td class="aa" align="right">text 5</td> 
 
</tr>'; 
 

 

 
$dom = str_get_html($html); 
 

 
$tds = $dom -> find("td"); 
 

 
foreach($tds as $td){ 
 

 
    if ($td -> innertext == $search){ 
 
     echo $td -> next_sibling() -> innertext; 
 
    } 
 
}

的問題是,它返回文本2,我試圖讓文本4

我也試過下面的代碼:

$dom = str_get_html($html); 
 

 
$tds = $dom -> find('td', 0)->text(); 
 

 
foreach($tds as $td){ 
 

 
    if ($td -> innertext == $search){ 
 
     $td->innertext = ''; 
 

 
    } 
 
} 
 

 
echo $tds;

在這種情況下變量$搜索似乎並不工作

有沒有辦法用simple_html_dom做到這一點?

回答

0

我想也許你是指第三個兄弟姐妹。

$td->next_sibling() 

因此,要獲得第三個是:

你與拿到第一個同級

$td->next_sibling()->next_sibling()->next_sibling() 
+0

完美!感謝您抽出寶貴的時間。 – ronx 2015-02-11 12:31:23