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 :

Problème de désérialisation xml


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Par défaut Problème de désérialisation xml
    Bonjour,

    Je souhaite désérialiser un fichier xml.
    Mon problème est que je ne sais pas comment manipuler les données de mon fichier.

    Je voudrai récupérer les coordonnées de mes points présents dans le XML et les intégrer dans ma liste.

    Quelqu'un peut il m'aider?

    Merci pour vos réponses.

    Voici une partie de mon code et mon fichier xml :

    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
     
    public List<lien> liste_liens = new List<lien>();
     
     
    private void ouvrirToolStripMenuItem_Click(object sender, EventArgs e) //Désérialisation
            {
                //Création d'une instance de XmlSerializer
                XmlSerializer xs = new XmlSerializer(typeof(List<lien>));
     
                //Ouverture d'un StreamReader pour lire le fichier source
                using (StreamReader rd = new StreamReader("sauvegarde_liens.xml"))
                {
                    //Désérialisation de l'objet à partir de ce StreamReader, avec la méthode Deserialize et cast.
                    List<lien> d = xs.Deserialize(rd) as List<lien>;    
     
                   //????????????????????
     
                }
            }
     
    public class lien
            {
                public lien() { }
     
                public Point pos_deb;
                public Point pos_fin;
     
                public lien(Point position1, Point position2)
                {
                    pos_deb = position1;
                    pos_fin = position2;
                }
            }
    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
     
    <?xml version="1.0" encoding="utf-8" ?> 
    - <ArrayOfLien xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    - <lien>
       - <pos_deb>
              <X>346</X> 
              <Y>272</Y> 
          </pos_deb>
         - <pos_fin>
               <X>868</X> 
               <Y>283</Y> 
           </pos_fin>
      </lien>
    - <lien>
         - <pos_deb>
                <X>177</X> 
                <Y>308</Y> 
           </pos_deb>
         - <pos_fin>
                <X>487</X> 
                <Y>147</Y> 
           </pos_fin>
      </lien>
      </ArrayOfLien>

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Par défaut
    quelque chose 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
    16
    17
    18
    19
    20
     
     
     
    //Ouverture d'un StreamReader pour lire le fichier source
                using (StreamReader rd = new StreamReader("sauvegarde_liens.xml"))
                {
                    //Désérialisation de l'objet à partir de ce StreamReader, avec la méthode Deserialize et cast.
                    List<lien> d = xs.Deserialize(rd) as List<lien>;    
     
                   //????????????????????
                   foreach (lien l in d)
                  {
                       l.pos_deb.X;
                       l.pos_deb.Y;
     
                       l.pos_fin.X;
                       l.pos_fin.Y
                    }
     
                }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Par défaut
    Merci bien. Il suffisait de parcourir ma liste et d'y ajouter mes coordonnées...

    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
     
     //Création d'une instance de XmlSerializer
                XmlSerializer xs = new XmlSerializer(typeof(List<lien>));
     
                //Ouverture d'un StreamReader pour lire le fichier source
                using (StreamReader rd = new StreamReader("sauvegarde_liens.xml"))
                {
                    //Désérialisation de l'objet à partir de ce StreamReader, avec la méthode Deserialize et cast.
                    List<lien> d = xs.Deserialize(rd) as List<lien>;
     
                    foreach (lien l in d)
                    {
                        liens.Add(new lien(new Point(l.pos_deb.X, l.pos_deb.Y), new Point(l.pos_fin.X, l.pos_fin.Y)));
                    }
     
                }

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Par défaut
    je n'avais pas vu que tu voulais les intégrer dans une liste existante.

    parce qu'alors c'est encore plus simple.
    il suffit de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste_liens.AddRange(d);
    pas besoin du foreach

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Par défaut
    Ça marche aussi. Merci

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

Discussions similaires

  1. Problème désérialisation XML et binaire
    Par Link3 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 11/07/2008, 11h40
  2. [XSLT] Problème de transformation XML avec un fichier xslt
    Par seb35 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 24/04/2006, 22h02
  3. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11
  4. [Tomcat] Problème avec web.xml
    Par hichamus dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/03/2005, 16h57
  5. [débutant] [lomboz] Problème deploy.web.xml
    Par cdrikou dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 29/04/2004, 10h47

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