Как и сказано в заголовке, у меня проблема с функцией php removeChild
У меня есть этот скрипт, циклически повторяющий HTML-теги
$list = $dom->getElementsByTagName("tag");
//charge et supprimme les tags
while($lst = $list->item(0)) {
$tgs = ucfirst($lst->getAttribute("type"));
array_push($test, $tgs);
$tg = new $tgs($dom, $lst, false);
$tg->render();
var_dump("--------- 1 ---------");
for ($i=0; $i < $list->count(); $i++) {
var_dump($list->item($i)->getAttribute("type"));
}
// var_dump($list[0]->parentNode->nodeName);
$lst->parentNode->removeChild($lst); //this line
var_dump("--------- 2 ---------");
for ($i=0; $i < $list->count(); $i++) {
var_dump($list->item($i)->getAttribute("type"));
}
$list = $dom->getElementsByTagName("tag");
}
и этот HTML-файл
<!DOCTYPE html>
<html lang="fr">
<head>
</head>
<body>
<header>
<tag type="includes" file="header" />
</header>
<main class="test container">
<div class="bloc_principal">
<div class="cover-black">
<div class="bloc_principal_titre">
<h1>L'actualité de nos campus...</h1>
</div>
<div class="test2">
<h2 id="titre-home">Ceci est un magnifique titre</h2>
<p class="p-home">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<div class="bloc-plus">
En savoir plus
</div>
</div>
</div>
</div>
</div>
<h3 id="titre-between">Articles récents</h3>
<div class="row articles">
<tag type="loop" for="posts" limit="6">
<div class="col-12 col-md-6 col-lg-4">
<div class="article column-categorie">
<h4 class="title">
<loop column="title" />
</h4>
<div class="etiquettes">
<span class="cat">
<loop column="categorie" />
</span>
<span class="date">
<loop column="date" />
</span>
</div>
<div class="text">
<loop column="content" />
</p>
</div>
</div>
</tag>
</div>
</main>
<footer>
<tag type="includes" file="footer" />
</footer>
</body>
</html>
большая часть работает нормально.
но по какой-то причине функция $lst->parentNode->removeChild($lst);
удаляет оба
<tag type="loop">
<footer><tag type="includes"></footer>
, которые являются моими последними дочерними объектами, существующими, когда он должен удалять только <tag type="loop">
, когда я var_dump $ lst-> parentNode, я получаю правильного родителя для удаления моего тега (<div class="row articles">
)