XML et PHP 5 : Problème : supprimer plusieurs fils (removeChild) dans un Foreach
Bonjour à tous ! :P
Alors voilà, j'ai un petit problème. Voici mon document XML qui contient une liste d'équipement et des variables pour chaque équipement :
Code:
1 2 3 4 5 6 7 8
| <monfichier>
<equipement>
<var id="1" taille="10"></var>
<var id="2" taille="8"></var>
<var id="3" taille="8"></var>
<var id="4" taille="10"></var>
</equipement>
</monfichier> |
Je voudrais supprimer toutes les balises "var" de mon équipement, je procède comme il suit avec une boucle foreach ;) :
Code:
1 2 3 4 5 6 7 8
|
$equipement = $monDOMDocument->getElementsByTagName('equipement')->item(0);
$listeVar = $equipement->getElementsByTagName('var');
foreach($listeVar as $var)
{
$equipement->removeChild($var);
} |
Le problème, c'est que je me retrouve avec seulement une balise "var" sur deux de supprimée !? 8O :?
Ainsi la moitié des balises reste ! Seule les balises ayant l'id 1 et 3 ont disparues. Les balises ayant l'id 2 et 4 sont toujours présentes 8O et donc je me retrouve avec le Document XML suivant :
Code:
1 2 3 4 5 6 7 8
| <monfichier>
<equipement>
<var id="2" taille="8"></var>
<var id="4" taille="10"></var>
</equipement>
</monfichier> |
Alors que je voudrais simplement cela :
Code:
1 2 3 4 5
| <monfichier>
<equipement>
</equipement>
</monfichier> |
Cela fait maintenant une journée entière que je bute sur détail. Mais je ne vois vraiment pas d'où vient le problème, à moins que la boucle foreach se considère à la balise suivante quand on supprime la balise en cours, ainsi l'incrémentation du curseur se ferait de 2 crans de suite, loupant ainsi une balise sur 2. :cry:
Si c'est le cas comment faire pour simplement supprimer mes balises "var" de mon équipement ?
Je vous remercie d’avance pour vos éventuelles solutions ! ;) ;)