Modification d'un fichier XML sous C#

ronaldoccr9 Messages postés 2 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 10 janvier 2010 - 10 janv. 2010 à 13:23
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 13 janv. 2010 à 16:32
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
10 janv. 2010 à 16:09
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,
0
ronaldoccr9 Messages postés 2 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 10 janvier 2010
10 janv. 2010 à 18:44
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
0
elkhalat Messages postés 1 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 10 janvier 2010
10 janv. 2010 à 22:31
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?
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
13 janv. 2010 à 16:32
0
Rejoignez-nous