Как лишить тег и весь его внутренний HTML с помощью идентификатора тега?

У меня есть следующий 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>. Как я делаю это?

20
задан meagar 28 November 2019 в 03:01
поделиться

4 ответа

С собственным 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();
33
ответ дан 29 November 2019 в 23:19
поделиться

Для этого можно также использовать Simple HTML DOM.

Парсер HTML DOM, написанный на PHP5+, позволит вам манипулировать HTML очень простым способом! способом!

4
ответ дан 17 October 2019 в 03:09
поделиться

Вы можете использовать preg_replace() как:

$string = preg_replace('/<div id="someid"[^>]+\>/i', "", $string);
14
ответ дан 29 November 2019 в 23:19
поделиться

функция strip_tags() - это то, что вы ищете.

http://us.php.net/manual/en/function.strip-tags.php

0
ответ дан 29 November 2019 в 23:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: