// Si le fichier XML n'existe pas, on le crée ainsi que sa racine if(!($file = DOMDocument::load($filename))) { $file = new DOMDocument(); $file->preserveWhiteSpace = false; $root = $file->createElement("data"); //On crée l élément racine $root = $file->appendChild($root); //On insère la racine dans le document // Création du noeud commune $element_commune = $file->createElement("commune"); $element_commune = $root->appendChild($element_commune); // Fonction permettant de remplir le fichier avec les différents noeuds et leurs valeurs Chargement_Realisation_XML($VG, $file, $element_commune, $vs_Realisation_Commune); } else { // On charge le fichier XML $file = new DOMDocument(); $file->load($filename); // Recherche le noeud "commune" $noeud_commune = $file->getElementsByTagName("commune"); $element_commune=$noeud_commune->item(0)->nodeName; $noeud_realisation = $file->getElementsByTagName('Realisation'); // On récupère le nom du noeud $var=$noeud_realisation->item(0)->nodeName; // On vérifie qu'au moins un élément existe dans l'arbre XML if ($var) { // On parcours la liste des éléments foreach($noeud_realisation as $element) { // On récupère l'attribut de l'élément en cours, et on garde cette valeur en mémoire $cherche_attribut = $element->getAttribute("name"); // Si l'attribut en cours est égal à la variable ID_Annee on supprime le noeud et on le remplace if ($cherche_attribut == ID_Annee) $trouve = 1; else $trouve = 0; // Si l'élément existe déjà, on le supprime et on l'ajoute avec les nouvelles valeurs if ($trouve == 1) { $element->parentNode->removeChild($element); Chargement_Realisation_XML($VG, $file, $element_commune, $vs_Realisation_Commune); } } // Si l'élément n'existe pas on l'ajoute if ($trouve == 0) Chargement_Realisation_XML($VG, $file, $element_commune, $vs_Realisation_Commune); } else Chargement_Realisation_XML($VG, $file, $element_commune, $vs_Realisation_Commune); }