IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Sauvegarde d'un fichier XML


Sujet :

C#

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut Sauvegarde d'un fichier XML
    Bonjour tout d'abord j'espère que je suis sur le bon forum, sinon merci aux modos de déplacer

    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

  2. #2
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    utilise un XmlTextWriter.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Par défaut
    Ceci fonctionne, il n'est pas nécessaire de passer par un textwriter ou xmlwriter ou encore streamwriter. XmlDocument permet justement d'ouvrir en lecture-écriture et conserve un pointeur sur le fichier directement.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    XmlDocument doc = new XmlDocument();
                doc.Load(@"XMLFile1.xml");
                XmlNode NewChild = doc.CreateNode(XmlNodeType.Element, "Customer", "");
                XmlNode NewChildChild = doc.CreateNode(XmlNodeType.Element, "Name", "");
                NewChildChild.InnerText = "tutu";
                NewChild.AppendChild(NewChildChild);
     
                doc.DocumentElement.AppendChild(NewChild);
                doc.Save(@"XMLFile1.xml");
    Assure toi que le fichier n'est pas en readonly aussi.

  4. #4
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Le problème c'est qu'on ne contrôle pas l'indentation avec la méthode save.

    XmlDocument permet justement d'ouvrir en lecture-écriture et conserve un pointeur sur le fichier directement.
    Est-ce que ça veux dire que c'est plus rapide à l'exécution que de passer par un XmlWriter ?

  5. #5
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut
    Le fichier n'est pas en read only et j'ai toujours la meme erreur, alors que je suis admin de ma machine -_-'
    Meme lorsque j'essaie le bout de code de stephane eyskens ...
    J'avais aussi essayé avec un XmlTextReader mais rien n'y fais.


    Edit: J'ai trouvé ceci mais ca ne change rien -_- Je regarde ptet pas dans la bonne direction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileIOPermission filePerm = new FileIOPermission(FileIOPermissionAccess.AllAccess , "C:\\hop.xml");
    filePerm.Assert();
    Merci encore d'avance

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Par défaut
    Tu es sur quel OS?

Discussions similaires

  1. [VB.Net] Comment sauvegarder dans un fichier XML ?
    Par totoranky dans le forum VB.NET
    Réponses: 3
    Dernier message: 16/03/2007, 11h32
  2. [XML] [PHP] Sauvegarde fichier xml
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/10/2005, 16h58
  3. [DOM XML] Sauvegarde fichier xml
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 11/10/2005, 14h49
  4. [C#] Pourquoi je ne peux pas sauvegarder le fichier Xml ?
    Par gregoun dans le forum Services Web
    Réponses: 5
    Dernier message: 05/05/2004, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo