简单的HTML解析器PHP删除除第一个以外的所有表行

时间:2014-02-22 15:53:04

标签: php parsing

我有下面的表我需要解析。如何删除除第一行(表格标题)之外的所有行,然后从第一行下面的变量中注入更多行?

<table>
<tr>
    <th>Column 1</th>
    <th>Column 2</th>
    <th>Column 3</th>
    <th>Column 4</th>
    <th>Column 5</th>
</tr>
<tr>
    <td>Column 1</td>
    <td>Column 2</td>
    <td>Column 3</td>
    <td>Column 4</td>
    <td>Column 5</td>
</tr>
<tr>
    <td>Column 1</td>
    <td>Column 2</td>
    <td>Column 3</td>
    <td>Column 4</td>
    <td>Column 5</td>
</tr>
<tr>
    <td>Column 1</td>
    <td>Column 2</td>
    <td>Column 3</td>
    <td>Column 4</td>
    <td>Column 5</td>
</tr>
<tr>
    <td>Column 1</td>
    <td>Column 2</td>
    <td>Column 3</td>
    <td>Column 4</td>
    <td>Column 5</td>
</tr>
</table>

编辑:以下是我到目前为止的代码。它会添加一个新行,但不会首先删除所有其他行(第一个除外)。另外,我不确定这是否是最好的方法,或者最好使用select(就像在jQuery中一样)。

$html = str_get_html($str);

$firstTr = true;

foreach($html->find('tr') as $tr) {
  if(!$firstTr) {
    echo '<tr>
              <td>Extra Row</td>
          </tr>';
  }
  else {
    $firstTr = false;
  }
}

echo $html; 

1 个答案:

答案 0 :(得分:0)

我认为这就是你需要的

<script>
$(document).ready(function(){
  $("tr:not(:first-child)").remove();
});
</script>

Jsfiddle example