0

私は次のようなDOMを持っています:

 div id = main
   div
   div

そして、私はこのように「ミドル」と呼ばれるdivを置きたいです:

  div id = main
   div id = middle
     div
     div

したがって、メインノードのすべての子ノードをミドルノードに移動し、ミドルノードをメインの子のみにしたいと思います。私はそれを理解しようとしますが、私はできません。

私はこのコードを使用します:

 $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でこれを正しく行う方法は?

4

1 に答える 1

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);
于 2012-07-25T14:15:56.737 に答える