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 :
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');
}
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