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 :

Lire et ecrire dans un xml [Fait]


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 73
    Points : 55
    Points
    55
    Par défaut Lire et ecrire dans un xml
    Salut tout le monde, après une recherche infructueuse sur les Xml je viens vous poser une ptite question:

    Comment lire et écrire dans un xml? En sachant que je teste à chaque démarrage si mon xml est la ou pas, s'il est la je le lis mais s'il n'est pas la je le crée.

    Comment lire Biblipath ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    string path = Directory.GetCurrentDirectory();
     
                if (File.Exists( path + "\\option.xml"))
                {
                    MessageBox.Show("Ok");
                    XDocument doc = XDocument.Load(path + "\\Option.xml");
                    XElement element = doc.Element("Conf");
     
     
                }
                else
                {
                    XDocument Configuration = new XDocument(new XElement("Conf", new XElement("BibliPath", path + "\\Biblotheque\\")));
                    Configuration.Save(path + "\\Option.xml");
                    XDocument doc = XDocument.Load(path + "\\Option.xml");
                    XElement element = doc.Element("Conf");
                    element.Add(new XElement("Comm", "False"));
                    doc.Save(path+ "\\Option.xml");
     
                }

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Bonjour,

    Vu que tu sembles utiliser Linq To XML, je te redirige vers un tuto t'apprenant à lire et à écrire dans un fichier XML avec Linq To XML.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 73
    Points : 55
    Points
    55
    Par défaut
    Merci bien je vais lire le tuto.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 73
    Points : 55
    Points
    55
    Par défaut
    Bon ben après avoir lu le tuto et cru avoir trouvé la solution, je bloque toujours, car je ne comprends pas l'utilisation du streaming, car dans le tuto, on ne peux lire les données d'un fichier xml que s'il est en streaming ou je me trompe?


    Edit : bon j'ai trouvé comment le lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
     XElement root = XElement.Load(path + "\\Option.xml");
                    IEnumerable<XElement> tests =
                        from el in root.Elements("Conf")
                        where (string)el.Element("Bibliopath") != ""
                        select el;
     
                    foreach (XElement el in tests)
                    {
                        string rec = (string)el.Element("Bibliopath").ToString();
                        rec = rec.Replace("<Bibliopath>","");
                        rec = rec.Replace("</Bibliopath>", "");
                        label50.Text = rec;
                        textBox21.Text = rec;
                    }
    En l'ayant créer comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    //Crétaion du fichier Xml
                    XDocument Configuration = new XDocument(
                     new XElement("Option",
                        new XElement("Conf",
     
                            new XElement("Bibliopath", path + "\\Biblotheque\\)") 
                        ),
                        new XElement("Comm",
     
                            new XElement("Comm", "False")
                        )
                    ));
     
                    Configuration.Save(path + "\\Option.xml");
    Merci pour le tuto Paul Musso ^^.

    Edit : Il ne me reste plus qu'à supprimer soit un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <Conf>
        <Bibliopath>E:\Simulation alterance 1\Simulateur\Simulateur\Simulateur\bin\Release\Biblotheque\)</Bibliopath>
      </Conf>
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      <Comm>
        <Comm>False</Comm>
      </Comm>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 73
    Points : 55
    Points
    55
    Par défaut
    Bon en fait j'ai trouvé comment faire:

    J'ouvre mon fichier Xml et je l'édite comme un fichier texte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    string[] textrecup = new string[100];
                int i = 0;
                //On recupère toutes les valeurs de l'ancien xml
                if (textBox21.Text != "")
                {
                    try
                    {
                        StreamReader monStreamReader = new StreamReader(path + "\\Option.xml");
                        ligne = monStreamReader.ReadLine();
     
                        while (ligne != null) 
                        {    
                            if (ligne.Contains("<Conf>") || ligne.Contains("</Conf>") || ligne.Contains("Bibliopath"))
                            {
     
                            }
                            else
                            {
                                textrecup[i] = ligne;
                                i = i + 1;
                            }
     
                            ligne = monStreamReader.ReadLine();
                        } 
     
                        imax = i;
                        monStreamReader.Close();
     
                    }
                    catch
                    {
                        MessageBox.Show("Problème à la lecture du fichier");
                    }
                    finally
                    {
                        //On ferme le reader et on supprime le fichier  
                        FileInfo mon_fichier = new FileInfo(path + "\\Option.xml");
                        mon_fichier.Delete();
                    }
     
                    //Pour créer le fichier sans créer de conflit:
                    try
                    {
                        XDocument Configuration = new XDocument();
                        Configuration.Save(path + "\\Option.xml");
                    }
                    catch
                    {
                    }   
                        //On écris les infos recup du fichier d'origine                  
                        try
                        {
                            // Instanciation du StreamWriter avec passage du nom du fichier 
                            StreamWriter monStreamWriter = new StreamWriter(path + "\\Option.xml");
     
                            for (int a = 0; a <= imax; a++)
                            {
                                monStreamWriter.WriteLine(textrecup[a]); 
                            }
     
                            // Fermeture du StreamWriter (Très important) 
                            monStreamWriter.Close();
                        }
                        catch 
                        {
     
                        } 
     
                    //On
                    XDocument doc = XDocument.Load(path + "\\Option.xml");
                    XElement elements = doc.Element("Option");
                    elements.Add(new XElement("Conf",new XElement("Bibliopath", textBox21.Text))); 
                    doc.Save(path + "\\Option.xml");
    C'est un peu bourrin mais ca a le mérite de fonctionner ^^.

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    C'est tout a fait bourrin !!

    Mais c'est vrai que la doc d'exploitation XML n'est pas tres genereuse en exemple et concept

    J'ai vécu le meme problème il y a peu de temps


    http://www.developpez.net/forums/d65...l-intelligent/

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 73
    Points : 55
    Points
    55
    Par défaut
    Merci pour le tuto ^^, je vais le regarder mais je ne pense pas changer ma solution vu que ça marche... (passer trop de tps à la trouver )

    Je connaissais déja le lien sur les parseurs intelligent et il m'avait bien aidé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire et ecrire dans un fichier de Signature xml
    Par masterdash dans le forum Autres Solutions d'entreprise
    Réponses: 1
    Dernier message: 16/01/2013, 22h01
  2. lire et ecrire dans un ficher
    Par menuge dans le forum Général Python
    Réponses: 1
    Dernier message: 09/11/2006, 15h56
  3. écrire dans un xml avant d'envoyer au serveur
    Par eloifi dans le forum Struts 1
    Réponses: 5
    Dernier message: 23/10/2006, 17h16
  4. Réponses: 4
    Dernier message: 28/10/2005, 09h59
  5. [JAR] Lire et Ecrire dans un fichier contenu dans un jar
    Par lipao17 dans le forum Général Java
    Réponses: 5
    Dernier message: 02/05/2005, 12h01

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