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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Je n'ai pas d'erreur, mais mon xml est toujours le même, la suppression ne marche pas!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'); }
Quelqu'un à une idée ?
Merci d'avance
Partager