Bonjour à tous !
Alors voilà, j'ai un petit problème. Voici mon document XML qui contient une liste d'équipement et des variables pour chaque équipement :
Je voudrais supprimer toutes les balises "var" de mon équipement, je procède comme il suit avec une boucle foreach
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>:
Le problème, c'est que je me retrouve avec seulement une balise "var" sur deux de supprimée !?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }![]()
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ésenteset donc je me retrouve avec le Document XML suivant :
Alors que je voudrais simplement cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <monfichier> <equipement> <var id="2" taille="8"></var> <var id="4" taille="10"></var> </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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <monfichier> <equipement> </equipement> </monfichier>![]()
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 !![]()
![]()
Partager