Sauvegarde de fichier xml après modifications

bob_le_cowboy Messages postés 13 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 5 avril 2007 - 5 avril 2007 à 11:04
cs_naddouuu Messages postés 5 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 3 avril 2008 - 25 mars 2008 à 14:40
Bonjour je viens de faire un traitementsur un fichier XML et j'aimerais sauvegarder ces modifications.

J'ai utilisé ceci pour l'ouvrir et le charger :

                XmlDocument destXml = new XmlDocument(); // Création de l'objet Xml
                destXml.Load(@"exemple_recette_youpi2.xml"); // Chargement du fichier

Après le traitement j'utilise la methode .Save afin de le sauvegarder :

                        string path = "path\\exemple_recette_youpi2.xml";
                        System.IO.TextWriter tWriter = new System.IO.StreamWriter(path);
                        destXml.Save(tWriter);

Et l'application plante en me balancant comme erreur :

                        Error : Request for the permission of type 'System.security.Permissions.FileIOPermission, mscorlib, version =2.0.0.0, culture = neutral, PublicToken= b77a5c561934e089' failed

Comme si je n'avais pas les droits necessaires afin d'écrire sur le fichier (alors qu'il n'est pas en lecture seule et que je suis admin de ma machine).
La method Save ayant plusieurs surcharges, je tiens a préciser que j'ai également essayer  destXml.Save(@"path0").
J'aimerais savoir si ce problème est déja arrivé a quelqu'un et/ou si quelqu'un l'a déja résolu (j'ai effectué des recherches mais je n'ai rien trouvé) .
Merci d'avance

10 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 avril 2007 à 11:22
essaye avec un autre nom de fichier...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
bob_le_cowboy Messages postés 13 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 5 avril 2007
5 avril 2007 à 11:57
Tu veux dire changer le nom du fichier xml?
C'est fait et ca ne change rien...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 avril 2007 à 13:21
oui... changer le nom du xml... car, je pense que tu ne peux pas écrire le nouveau car il est encore en lecture.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
bob_le_cowboy Messages postés 13 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 5 avril 2007
5 avril 2007 à 14:13
Il faudrait donc le fermer avant de pouvoir enregistrer?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 avril 2007 à 14:23
oui.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
bob_le_cowboy Messages postés 13 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 5 avril 2007
5 avril 2007 à 15:26
D'accord j'ai un peu regardé a droite et a gauche mais je n'ai rien trouvé de simple et concret concernant la fermeture d'un XmlDocument.
Aurais-tu une piste a m'indiquer ?
Merci d'avance
0
bob_le_cowboy Messages postés 13 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 5 avril 2007
5 avril 2007 à 16:02
Bon j'ai écris ceci :

Chargement

            XmlTextReader lecturexml;
            lecturexml = new XmlTextReader( @"destination.xml" );

            XmlDocument dest = new XmlDocument(); // Création de l'objet Xml
            dest.Load( lecturexml ); // Chargement du fichier

Et donc pour la fermeture et l'enregistrement :

                        lecturexml.Close();
                        dest.Save( @"destination.xml" );

Seulement le message d'erreur est toujours le meme -_-'
Est-ce que j'ai raté ou mal fait quelque chose?
Merci d'avance
0
The_Bidule Messages postés 1 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 19 avril 2007
19 avril 2007 à 09:05
J'utilise en ce moment le code suivant, qui fonctionne très bien :



// On charge le fichier XML

XmlDocument doc =
new
XmlDocument();doc.Load( <chemin physique complet du fichier XML> );

//on selectionne l'attribut "att1" dans la section "appSettings" du fichier XML

XmlNode MonitorPathNode = doc.SelectSingleNode(
"//appSettings/add[@key='att1']");//

on affecte "coucou" dans le champ "value" de l'attribut "att1" du fichier XMLMonitorPathNode.Attributes[

"value"].InnerText = "coucou";

//on sauve les changements qu'on a effectué dans le fichier XMLdoc.Save(<chemin physique complet du fichier XML>);
0
GrangetteDid Messages postés 5 Date d'inscription mardi 14 septembre 2004 Statut Membre Dernière intervention 5 juillet 2007
21 mai 2007 à 17:35
Bonjour,

J'utilise le même type de code mais pour m'a part cela ne fonctionne pas dans un application de type service windows.

La commande Save n'a pas l'aire de fonctionner : pas d'exception mais pas de résultat non plus.

Une idée ?
0
cs_naddouuu Messages postés 5 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 3 avril 2008
25 mars 2008 à 14:40
apparemment ce n'est pas la bonne commande
Le jour où Microsoft inventera quelque chose qui ne plante pas, ce sera un clou
0
Rejoignez-nous