Вот мой код:
$doc = new DOMDocument(); $doc->loadHTML(stripslashes($sContent)); // si le meta existe alors il ya un sondage if($doc->getElementById('meta') != null){ $nombreMeta = $doc->getElementById('meta')->nodeValue; $numSondage = $doc->getElementById('meta')->getAttribute('class'); for($i=0;$i<$nombreMeta;$i++){ $meta = $meta."0,"; } $meta = substr($meta,0,-1); $divMeta = $doc->getElementById('meta'); $oldchapter = $doc->removeChild($divMeta); $oHead = $doc->getElementsByTagName('head')->item(0); $oMeta2 = $doc->createElement('meta'); $oMeta2->setAttribute('name',"metapoll".$numSondage); $oMeta2->setAttribute('content',$meta); $oHead->insertBefore($oMeta2, $oHead->firstChild); $sContent = $doc->saveHTML(); }
Я пытаюсь удалить div с id="meta"
($doc->getElementById('meta'))
, но я не знаю, почему это не работает.
Я проверил множество вещей, таких как:
$metmet = $doc->documentElement; $divMeta = $metmet->getElementById('meta')->item(0); $metmet->removeChild($divMeta);
Но это не сработает. Есть идеи ?
Метод removeChild
удаляет дочерний элемент из узла. Div не может быть дочерним элементом объекта document
, только <html>
может быть (в документе HTML).
Найдя div, который вы хотите удалить, вам нужно получить его родительский узел. Затем вызовите removeChild
.
$divMeta->parentNode->removeChild($divMeta)
Следующий код должен работать:
$divMeta = $doc->getElementById('meta'); $divMeta->parentNode->removeChild($divMeta);
removeChild
parentNode