[Debutant] Je galere depuis 2 jours pour supprimer un node d'un fichier Xml. [Résolu]

Signaler
Messages postés
37
Date d'inscription
mardi 11 décembre 2018
Statut
Membre
Dernière intervention
16 mai 2020
-
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
-
Bonjour, tout est dans le titre .
J'aimerais pouvoir effacer un node selectionner
Ne riez pas c'est surement facile a faire.
Voici une de mes nombreuses tentatives:


private void DeleteEntry_Click(object sender, EventArgs e)

{
string selectednode = Convert.ToString(treeMenu.SelectedNode);
string path = Application.StartupPath + @"\XMLFILE\NewFormNameList.XML";
XmlDocument doc = new XmlDocument();
doc.Load(path);

XmlNodeList nodes = doc.GetElementsByTagName(selectednode);
XmlNode node = nodes[0];
node.RemoveChild(node);

doc.Save(path);

}


voici mon fichier Xml :

<?xml version="1.0" encoding="utf-8"?>
<MenuList>
<ItemDetails>
<ItemAdd />
<ItemEdit />
<ItemDelete />
<itemPrice />
<test />
<test2 />
<test3 />
<res />
</ItemDetails>
<UserDetails>
<tre />
</UserDetails>
</MenuList>


Donc pour résumer j'aimerais pouvoir effacer un node selectionné (par exemple test2) de mon Treeview (treeMenu).
Merci d'avance pour ceux qui prendront de leurs temps précieux pour me répondre.
Bien a vous.

2 réponses

Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
420
Bonsoir

là tu supprimes les enfants de ton Node, pas le Node.

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Messages postés
37
Date d'inscription
mardi 11 décembre 2018
Statut
Membre
Dernière intervention
16 mai 2020

Merci d'avoir prit le temps de me répondre.
J'ai trouvé ça comme solution je la joint si ça peut aider quelqu'un.
 string rootFolder = Application.StartupPath + @"\XMLForms\";
string selectednode = Convert.ToString(treeMenu.SelectedNode);
string path = Application.StartupPath + @"\XMLFILE\NewFormNameList.XML";
XDocument XMLDoc = XDocument.Load(path);
XElement elment = (from xml1 in XMLDoc.Descendants(textBox2.Text)
select xml1).FirstOrDefault();
elment.Remove();
XMLDoc.Save(path);
loadTreeViewFromXML();
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
420
FirstOrDefault retourne null s’il n’y a pas d’occurence.
Je te conseille donc de tester element
if(element != null)
{
            elment.Remove();
            XMLDoc.Save(path);
            loadTreeViewFromXML();
}

Ça te premunira d’une erreur d’exécution potentielle.

PS: pour poster un code merci de lire et d’appliquer ce qui est décrit là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
37
Date d'inscription
mardi 11 décembre 2018
Statut
Membre
Dernière intervention
16 mai 2020

Merci beaucoup pour l'info et je vais de ce pas lire la charte concernant le postage de code .
Bonne journée a très bientôt.
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
420
de rien