使用simplehtmldom获取第三个子元素


get third child element with 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;

在这种情况下,变量$search似乎不起的作用

有什么方法可以用simplehtmldom实现这一点吗?

我想你可能是指第三个下一个兄弟姐妹。

你得到了第一个下一个兄弟:

$td->next_sibling()

所以要获得第三个是:

$td->next_sibling()->next_sibling()->next_sibling()