je cherche depuis des semaines et après différentes tentatives je n'arrive toujours pas à ajouter un noeud dans mon fichier correctement...Je souhaite ajouter un noeud juste avant celui ayant l'id 'bonnes_pratiques' et je n'y arrive pas. Jusqu'à présent je réussissait à écrire mais tout à la finde mon fichier et il manquait des balises.
voici ma dernière version de code
<?php
$titre_art_replace=str_replace(" ","_",$_POST['titre_art']);
$dom = new DomDocument();
$dom->load("C:\wamp\www\config\menu.xml");
$parent_path="/menu_niveau_2";
//$query = "/menu_niveau_3 [@id=\"bonnes_pratiques\"]";
$xpath= new DomXpath($dom);
$parent=$xpath->query($parent_path);
//$element = $xpath->query($query);
$elements = $xpath->query("/menu_intranet/menu_niveau_0/menu_niveau_1/menu_niveau_2/menu_niveau_3[@id='bonnes_pratiques']");
if (!is_null($elements)) {
foreach ($elements as $elementa) {
echo "<br/>[". $elementa->nodeName. "]";
$nodes = $elementa->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue. "\n";
}
}
}
$id = $dom->getElementById("bonnes_pratiques");
$nouvel_art = $dom->createElement("menu_niveau_3");
$titre = $dom->createElement("titre");
$lien = $dom->createElement("lien");
$visible_navigation = $dom->createElement("visible_navigation");
$visible_plan_du_site = $dom->createElement("visible_plan_du_site");
$NECESSITE_DROIT = $dom->createElement("NECESSITE_DROIT");
$icone = $dom->createElement("icone");
$titre_text =$dom->createTextNode("".$_POST['titre_art']."");
$lien_text = $dom->createTextNode('Articles/bonnes_pratiques/'.$titre_art_replace.'.php');
$visible_navigation_text= $dom->createTextNode('OUI');
$visible_plan_du_site_text= $dom->createTextNode('NON');
$NECESSITE_DROIT_text = $dom->createTextNode(0);
$titre->appendChild($titre_text);
$lien->appendChild($lien_text);
$visible_navigation->appendChild($visible_navigation_text);
$visible_plan_du_site->appendChild($visible_plan_du_site_text);
$NECESSITE_DROIT->appendChild($NECESSITE_DROIT_text);
$nouvel_art->appendChild($titre);
$nouvel_art->appendChild($lien);
$nouvel_art->appendChild($visible_navigation_text);
$nouvel_art->appendChild($visible_plan_du_site_text);
$nouvel_art->appendChild($NECESSITE_DROIT_text);
$nouvel_art->appendChild($icone);
$dom->insertBefore($elements,$nouvel_art);
$dom->save("C:\wamp\www\config\menu.xml");?>
Merci de votre aide