fork download
  1. <?php
  2. $s = '<div class="col">
  3. <div id="wrap">
  4. <div class="inner_wrap">
  5. Content 1
  6. </div>
  7. <div class="inner_wrap">
  8. Content 2
  9. </div>
  10. <p id="ab12">Hello</p>
  11. <img src="xy.jpg"/>
  12. </div>
  13. <p id="pqr123">Hello</p>
  14. <img src="ab.jpg"/>
  15. </div>';
  16.  
  17. $doc = new DOMDocument();
  18. $doc->loadHTML($s, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
  19. $xpath = new DOMXPath($doc);
  20. $nlist = $xpath->query("//div[@id='wrap']");
  21.  
  22. for($i=0; $i < $nlist->length; $i++) {
  23. $node = $nlist->item($i);
  24. for($j=0; $j < $node->childNodes->length; $j++) {
  25. $child = $node->childNodes->item($j);
  26. if ($child->nodeName != "#text") {
  27. $node->parentNode->appendChild($child);
  28. }
  29. }
  30. $node->parentNode->removeChild($node);
  31. }
  32.  
  33. $doc->formatOutput = true;
  34. $newHTML = $doc->saveHTML();
  35. echo $newHTML;
  36. ?>
  37.  
Success #stdin #stdout 0.03s 26604KB
stdin
Standard input is empty
stdout
<div class="col">
  
  <p id="pqr123">Hello</p>
  <img src="ab.jpg">
<div class="inner_wrap">
      Content 1
    </div>
<div class="inner_wrap">
      Content 2
    </div>
<p id="ab12">Hello</p>
<img src="xy.jpg">
</div>