Je n'ai toujours pas trouvé une solution pour supprimer un noeud dans un fichier XML.
Voici le products_test.xml que je veux editer :
Code : Tout sélectionner
<?xml version='1.0'?>
<chambre>
<armoire>
<tiroir>feuilles</tiroir>
</armoire>
<armoire>
<tiroir>crayons</tiroir>
</armoire>
<armoire>
<tiroir>gommes</tiroir>
</armoire>
</chambre>
Voici mon script :
$db = new DomDocument;
$db->preserveWhiteSpace = false;
$db->formatOutput = true;
$db->load("products_test.xml");
$chambre = $db->documentElement;
$noeuds_armoire = $chambre->childNodes;
$noeuds_tiroirs = $noeuds_armoire->item(0)->childNodes;
$tiroirs = $chambre->getElementsByTagName('tiroir');
foreach ($tiroirs as $tiroir){
print $tiroir->nodeName . "\n" . "<br>";
if ($tiroir->firstChild->nodeValue == "gommes"){
$noeud_parent = $tiroir->parentNode->????getIndex????;
print "noeud parent du noeud contenant feuille: $noeud_parent <br>";
$chambre->removeChild($noeuds_armoire->item($noeud_parent));
}
}
En fait, je ne sais pas comment recupere l'index d'un noeud particulier ... J'ai essayé ca, mais ... ca ne marche pas :
$noeud_parent = $tiroir->parentNode->????getIndex????;
$chambre->removeChild($noeuds_armoire->item(??? variable that holds the index));
J'ai essayé de faire ca "a la main" en donnant l'index du noeud a supprimer (ex : 2) et cela marche tres bien.Avez vous une idée de comment resoudre mon probleme ?
Merci d'avance et bon week end !