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 :

[C#] [XML] Problème d'insertion dans un fichier Xml


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [C#] [XML] Problème d'insertion dans un fichier Xml
    Bonjour a tous,
    Je debute dans le Xml et j'ai un petit problème :

    J'ai une classe Employe qui a 3 proprieté : nom, prenom, age
    j'ai une autre classe Societe qui a une arraylist d'employes.

    Je souhaite pouvoir enregistrer chaque personne dans le fichier Xml pour qu'il est la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0"?>
    <employe>
      <nom>raph</nom>
      <prenom>toto</prenom>
      <age>35</age>
    </employe>
    <employe>
      <nom>jean</nom>
      <prenom>toto</prenom>
      <age>30</age>
    </employe>
    J'ai donc ecrit la methode suivante :
    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
    		public void GenereXml(string FichierDestination)
    		{						
    			XmlDocument doc = new XmlDocument();
    			doc.Load(FichierDestination);
     
    			XmlTextWriter tw = new XmlTextWriter(FichierDestination, Encoding.UTF8);
    			tw.Formatting = Formatting.Indented;
     
    			foreach(Employe personne in employes)
    			{
    				XmlElement nvemploye = doc.CreateElement("employe");
    				XmlElement nomemp = doc.CreateElement("nom");
    				nvemploye.AppendChild(nomemp);
    				nomemp.InnerText = personne.Nom;
     
    				doc.WriteContentTo(tw);
    			}
    			tw.Close();
    		}
    Le le probleme est que si le fichier est vide j'ai une erreur et sinon le fichier contient toujours le meme element.

    D'ou vient le problème.
    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0"?>
    <employe>
      <nom>raph</nom>
      <prenom>toto</prenom>
      <age>35</age>
    </employe>
    <employe>
      <nom>jean</nom>
      <prenom>toto</prenom>
      <age>30</age>
    </employe>
    deja le fichier XML est mal forme, un document xml doit avoir 1 element racine et un seul:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0"?>
    <lesemployes>
    <employe>
      <nom>raph</nom>
      <prenom>toto</prenom>
      <age>35</age>
    </employe>
    <employe>
      <nom>jean</nom>
      <prenom>toto</prenom>
      <age>30</age>
    </employe>
    </lesemployes>
    Ensuite, soit t'utilise DOM XML (XmlDocument) soit le writer (XmlTextWriter) mais pas les deux... ca fait double emploi pour rien sinon

    ex de chez msdn pour creer un petit doc simple avec un xmlTextWritter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    w.WriteStartElement("root");
    w.WriteAttributeString("xmlns", "x", null, "urn:1");
     w.WriteStartElement("item","urn:1");
     w.WriteEndElement();
     w.WriteStartElement("item","urn:1");
     w.WriteEndElement();
    w.WriteEndElement();
    je pense que doc.WriteContentTo(tw); ecrase les infos precedemment ecrites.

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    OK merci j'ai résolu mon problème.
    Le problème venait bien de la structure de mon fichier Xml.

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

Discussions similaires

  1. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  2. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  3. Insertion dans un fichier xml à partir d'un xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/03/2003, 09h45
  4. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 17h16

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