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

Résolu
dragonfly22000
Messages postés
49
Date d'inscription
mardi 11 décembre 2018
Statut
Membre
Dernière intervention
13 avril 2021
- 22 févr. 2019 à 15:00
Whismeril
Messages postés
17331
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
- 24 févr. 2019 à 12:16
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

Whismeril
Messages postés
17331
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
596
Modifié le 22 févr. 2019 à 18:23
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
1
dragonfly22000
Messages postés
49
Date d'inscription
mardi 11 décembre 2018
Statut
Membre
Dernière intervention
13 avril 2021

23 févr. 2019 à 15:53
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();
0
Whismeril
Messages postés
17331
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
596
23 févr. 2019 à 16:27
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
1
dragonfly22000
Messages postés
49
Date d'inscription
mardi 11 décembre 2018
Statut
Membre
Dernière intervention
13 avril 2021

24 févr. 2019 à 11:10
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.
0
Whismeril
Messages postés
17331
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
596
24 févr. 2019 à 12:16
de rien
0