PHP DOMDocument合并表td

问题描述 投票:0回答:1

我如何结合日期td和td时间td。这可能吗?

$html = <<<HTML
<table class="mytable">
  <tbody><tr>
      <td>date</td>
      <td>td1</td>
      <td>time</td>
      <td>td2</td>
    </tr></tbody>
</table>
HTML;

$dom = new DOMDocument;
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
foreach ($xpath->query("//table[@class='mytable']/tbody/tr") as $tr) {
    foreach ($tr->getElementsByTagName("td") as $i => $td) {
        if ($i & 1) {
            $previousTd->nodeValue .= " " . $td->nodeValue;
        } else {
            $previousTd = $td;
        }
    }
    for ($x = $tr->getElementsByTagName("td")->length - 1; $x >= 0; $x -= 2) {
        $tr->removeChild($tr->getElementsByTagName("td")->item($x));
    }
}
echo $dom->saveHTML();

输出:

<table class="mytable">
  <tbody><tr>
      <td>date td1</td>    
      <td>time td2</td>    
    </tr></tbody>
</table>

我要3个单元格,日期和时间应该在中间单元格中。我该怎么办

php parsing dom domdocument
1个回答
1
投票

收集尸体tr细胞。使用第一个出现单元格的文本覆盖第三个出现单元格的文本,然后删除第一个单元格。

© www.soinside.com 2019 - 2024. All rights reserved.