如何使用php将元素附加到另一个元素


How to append element to another element using php

我正试图将元素附加到Domdocument中新建的节点中。

我有类似的东西

$dom = new DomDocument();
     $dom->loadHTML($html]);
     $xpath=new DOMXpath($dom);
      $result = $xpath->query('//tbody');
      if($result->length > 0){
          $tbody = $dom->getElementsByTagName('tbody');
          $table=$dom->createElement('table');
           $table->appendChild($tbody);
       }

我的tbody没有表标签,它就像

<tbody>
    <tr>
       <td>cell</td>
       <td>cell</td>
       <td>cell</td>
    </tr> 
    ….more
</tbody>

我想用table标签包装它。

我的代码不起作用,它给了我类似的错误

PHP可捕获的致命错误:传递给DOMNode::appendChild()的参数1必须是DOMNode的实例、给定的DOMNodeList的实例、

我该如何解决此问题?谢谢

变量$tbody不是单个<tbody>元素;它是元素的集合——您正在"通过标记名称获取元素",可能有很多。如果您只想通过标记名查找元素,那么也绝对没有理由使用XPath。

改为:

$tbodies = $dom->getElementsByTagName('tbody');
foreach ($tbodies as $tbody) {
    $table = $dom->createElement('table');
    $tbody->parentNode->replaceChild($table, $tbody);
    $table->appendChild($tbody);
}

在实际操作中查看