1

単純なHTMLテーブルで、最後の列を削除したい

<table>
<tbody>
<tr>
    <th>1</th>
    <th>2</th>
    <th>3</th>
    <th rowspan="3">I want to remove this</th>
</tr>

<tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td rowspan="3">I want to remove this</td>
</tr>

私はこのコードを使用していますが、コンテンツとthおよびtd行スパンが残っています

$myTable = preg_replace('#</?td rowspan[^>]*>#i', '', $myTable);
echo $myTable

質問:最後の列とその内容を削除するにはどうすればよいですか?

4

2 に答える 2

1
<?php

  // Create a new DOMDocument and load the HTML
  $dom = new DOMDocument('1.0');
  $dom->loadHTML($html);

  // Create a new XPath query
  $xpath = new DOMXPath($dom);

  // Find all elements with a rowspan attribute
  $result = $xpath->query('//*[@rowspan]');

  // Loop the results and remove them from the DOM
  foreach ($result as $cell) {
    $cell->parentNode->removeChild($cell);
  }

  // Save back to a string
  $newhtml = $dom->saveHTML();

それが機能しているのを見る

于 2012-05-17T12:08:24.810 に答える
0

私はこれがそれをするだろうと思います

preg_replace("/<(?:td|th)[^>]*>.*?<\/(?:td|th)>\s+<\/tr>/i", "</tr>", $myTable);

</tr>例とは異なり、各行の最後に終了trタグ()があると仮定します

編集:<td>これにより、属性があるかどうかに関係なく、<th>閉じる前に要素が削除されます</tr>

実例

于 2012-05-17T11:57:02.837 に答える