如何使用标签的id剥离标签及其所有内部html?

2022-08-30 19:42:24

我有以下html:

<html>
 <body>
 bla bla bla bla
  <div id="myDiv"> 
         more text
      <div id="anotherDiv">
           And even more text
      </div>
  </div>

  bla bla bla
 </body>
</html>

我想删除从结束开始的所有内容。我该怎么做?<div id="anotherDiv"><div>


答案 1

使用本机 DOM

$dom = new DOMDocument;
$dom->loadHTML($htmlString);
$xPath = new DOMXPath($dom);
$nodes = $xPath->query('//*[@id="anotherDiv"]');
if($nodes->item(0)) {
    $nodes->item(0)->parentNode->removeChild($nodes->item(0));
}
echo $dom->saveHTML();

答案 2

您可以使用如下方式:preg_replace()

$string = preg_replace('/<div id="someid"[^>]+\>/i', "", $string);

推荐