[DOM XML] Supprimer noeud XML/PHP 5
Bonjour,
Je voudrais arrivé à supprimer tout ce qui ce passe entre les balises apprenant quand l'id reçu en paramètre correspond à l'id du noeud. Ici j'utilise une variable ($id) fixe pour effectuer les tests.
J'ai vu qu'il existé déjà un poste sur ce sujet : http://www.developpez.net/forums/d27...noeud-xml-php/
Cependant, je n'arrive toujours pas à avoir ce qui cloche !
Voici mon XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<DS_Apprenant xmlns="">
<Apprenant diffgr:id="Apprenant1" msdata:rowOrder="0">
<Id>5126494</Id>
<Code>0003017</Code>
<Nom>Test</Nom>
<Prenom>Teston</Prenom>
<NomApprenant>Test Teston</NomApprenant>
<INS_ID>5126495</INS_ID>
<ENA_NOM>11-12 MFAO</ENA_NOM>
<Programme>MFAO</Programme>
<CodeEtat>VAL</CodeEtat>
<Actif>true</Actif>
<ENA_ID>5124711</ENA_ID>
<Login>test.test.11@live</Login>
<UNC_CODE>ODP41005E-1</UNC_CODE>
<UNC_DEBUT>2012-03-23T00:00:00+01:00</UNC_DEBUT>
<GRP_CODE>MS CE 11-12</GRP_CODE>
<UNC_FIN>2012-07-31T00:00:00+02:00</UNC_FIN>
</Apprenant>
</DS_Apprenant>
</diffgr:diffgram> |
Et voici mon Script PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $id = "5126494";
$data = new DOMDocument();
$data->load('ListeApprenantUC1.xml');
$racine = $data->documentElement;
$apprenants = $data->getElementsByTagName('Apprenant');
foreach($apprenants as $Apprenant)
{
if($Apprenant->getAttribute('Id') == '$id')
{
$racine->removeChild($Apprenant);
}
$data->save('ListeApprenantUC1.xml');
} |
Je n'ai pas d'erreur, mais mon xml est toujours le même, la suppression ne marche pas!
Quelqu'un à une idée ?
Merci d'avance :ccool: