Modification d'un fichier XML sous C#

Signaler
Messages postés
2
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
10 janvier 2010
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
bonjour à tous,
je suis entrain de réaliser une application de gestion bancaire sous C# en utilisant XML,je vous modifier un compte déjà existant mais en cliquant sur modifier le message suivant apparait:
La référence d'objet n'est pas définie à une instance d'un objet.
voici le code que j'utilise:
private void Modifier_Click(object sender, EventArgs e)
{
XmlDocument docxml = new XmlDocument(); docxml.Load(@"C:\Documents and Settings\HP\Bureau\projets\tp\IHM\IHM\bin\Debug\compte.xml");
//On recupere le noeud racine dans la variable root
XmlElement root = docxml.DocumentElement;
//On selectionne l'element compte qui possebde un attribut code='1'
XmlNode elem = root.SelectSingleNode("Compte[@code=1]");
//On selectionnne cette fois ci la propriété qu'on souhaite modifer
XmlNode Adr = elem.SelectSingleNode("solde");
//On remplace l'ancienne valeur par la nouvelle valeur
Adr.InnerText = "1234";
//On sauvegarde la modification dans le fichier xml
docxml.Save("compte.xml");
}
est ce que quelqu'un peut m'aider?

4 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut,

Il doit avoir une de test variable non initialisée.

Je pense que c'est elem.
De tete ton fichier
resemble à
<...entete...>
<Compte code="1">
...</Compte>
<Compte code="2">
...</Compte>


Ce qui n'est pas valide car il y a pas d'élement racine.

La requete devrait plus resemblée à
/Comptes/Compte[@code=1]

pour avoir un element racine ou le prendre en compte.




Revois tes requetes Xpath,
Messages postés
2
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
10 janvier 2010

voici le format de mon fichier compte.xml
<Compte>
1

<Date>2010-01-10T14:29:17.421875+00:00</Date>

<nom>...</nom>
<cin>...</cin>
....


<telephone>...</telephone>
...



<solde>44</solde>
</Compte>

avec prop c'est un objet de classe Propriétaire qui est le Propriétaire du compte
Messages postés
1
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
10 janvier 2010

merci pour votre réponse nhervagault,
vous avez raison, j'ai un erreur dans initialisation de elem,
lorsque je fait:
XmlNode elem = root.SelectSingleNode("Compte");
ça marche bien, mais le problème que je dois préciser le compte qui va être modifier, mais lorsque je fait:
XmlNode elem = root.SelectSingleNode("Compte[@code=1]");
le compilateur me donne le message d'erreur suivant.
alors comment je peux préciser le code de compte que je dois modifier ?
est ce que quelqu'un peut m'aider?
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49