SimpleXML supprimer des nœuds

J'ai une boucle foreach qui est seulement en cours d'exécution une fois et il m'a déconcerté.

1: je charge un tableau de valeurs d'état (soit "demande", "supprimer", ou "achetés")

2: j'ai ensuite charger un fichier xml et le besoin de faire une boucle par le "code" de nœuds et de mettre à jour leur statut, MAIS si le nouveau code est "supprimer" je veux l'enlever avant de passer à la suivante

La structure XML....

<content>
.... lots of stuff
<codes>
<code date="xxx" status="request">xxxxx</code>
.. repeat ...
</codes>
</content>

et le code php ...

$newstatus = $_POST['updates'];
$file = '../apps/templates/'.$folder.'/layout.xml';
$xml2 = simplexml_load_file($file);
foreach($xml2->codes->code as $code){
    if($code['status'] == "delete") {
        $dom=dom_import_simplexml($code);
        $dom->parentNode->removeChild($dom);
    }
}
$xml2->asXml($file);

J'ai retiré temporairement la mise à jour donc je peux débogage de la suppression de la case.
Tout cela fonctionne, MAIS il supprime uniquement le 1er supprimer et laisse tous les autres supprime même si c'est une boucle foreach??.
Toute aide grandement appréciée.

InformationsquelleAutor user2086003 | 2013-06-19