如何在一个节点和它的子节点之间插入DOM层次结构中的节点?

时间:2012-07-25 13:54:38

标签: php dom

我的DOM看起来像这样:

 div id = main
   div
   div

我想把这个叫做“中间”的div这样:

  div id = main
   div id = middle
     div
     div

所以我想将主节点的所有子节点移动到中间节点,中间节点成为main的子节点。我试图解决它,但我不能。

我使用此代码:

 $wrapper = $doc->createElement('div');
 foreach($node->childNodes as $child) 
 {
     $node->removeChild($child);
     $wrapper->appendChild($child);
 }
 $node->appendChild($wrapper);

但它不起作用。

如果我这样做:

          $wrapper = $doc->createElement('div');
          $children = $node->childNodes;
          for($i = $children->length; $i--;) {
              $child = $children->item($i);
              $node->removeChild($child);
              $wrapper->appendChild($child);
          } 
           $node->appendChild($wrapper);

项目已移动,但顺序相反。

如何在PHP中正确执行此操作?

1 个答案:

答案 0 :(得分:0)

          $wrapper = $doc->createElement('div');
          $children = $node->childNodes;
          for($i = 0; $children->length > 0; $i++) {
              $child = $children->item(0);
              $node->removeChild($child);
              $wrapper->appendChild($child);
          } 
           $node->appendChild($wrapper);