2017-05-14 1 views
0

I持ってaligncenterのクラスと「P」コンテナ内の画像へのコンテナのdivを追加し、次...次のでのDOMDocument XPathは、複数のコンテナのdivを追加

$images = $xpath->query("//p/img[contains(concat(' ', @class, ' '), ' aligncenter ')]"); 
     foreach($images as $img) { 
      $wrap = $dom->createElement("div"); 
      $wrap->setAttribute("class","inner ".$img->getAttribute("class")); 
      $img->parentNode->replaceChild($wrap,$img); 
      $wrap->appendChild($img); 
     } 

...

は、私は今、それがなるように別のコンテナを追加しようとしています...

<div class="inner"> 
    <img src="image.jpg"> 
</div> 

になり...

<div class="wrapper"> 
    <div class="inner"> 
     <img src="image.jpg"> 
    </div> 
</div> 

私は再び画像を反復すべきか、それは同時に別のコンテナのdivを追加するように、私は、現在のコードを変更することができますか?

答えて

1

はい、すべてを1つのループで行うことは間違いありません。あなたの現在のコードが動作すると仮定すると、これはトリックを行う必要があります:

foreach($images as $img) { 
    $outerWrap = $dom->createElement('div'); 
    $outerWrap->setAttribute('class', 'wrapper'); 
    $wrap = $dom->createElement("div"); 
    $wrap->setAttribute("class","inner ".$img->getAttribute("class")); 
    $img->parentNode->replaceChild($outerWrap,$img); 
    $outerWrap->appendChild($wrap); 
    $wrap->appendChild($img); 
} 
+0

ありがとうございました。 – fightstarr20

関連する問題