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] convertir un XmlNodeList en HashTable


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Par défaut [C#][XML] convertir un XmlNodeList en HashTable
    Bonjour à tous,

    je suis en train de travailler sur un fichier xml généré par MSTest.

    à un endroit dans le fichier xml on a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <tests type="System.Collection.HashTable">
          <key> blablabla </key>
          <value> blablabla </value>
          <key> blablablablabla </key>
          <value> blablablablabla </value>
    </tests>
    ça tombe super bien car j'ai besoin de convertir cette structure en hashtable afin d'en extraire des données !

    Problème je ne vois pas comment faire...

    Je commencerais par créér un XmlNodeList avec le bon XPath pour récupérer la racine de <tests> mais après je suis bloqué.

    Il existe un XmlSerializer mais je crois comprendre qu'il permet de convertir des strutures de données en Xml...



    Quelqu'un a une idée ?

    Merci !

    Loic

  2. #2
    Membre expérimenté Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Par défaut
    Salut.
    C'est pas un fichier XML bien structure. Si j'etais a ta place je le changerai si possible, bien sur, et si ca depend de toi
    Une structure de style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tests>
      <item key="1" value="un">
      <item key="2" value="deux">
    </tests>
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <tests type="System.Collection.HashTable">
          <key> 1 </key>
          <value> un </value>
          <key> 2 </key>
          <value> deux </value>
    </tests>
    est beaucoup plus approprie (d'pres moi )

    Revenons sur la question
    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
            public static Dictionary<string,string> XML2Dct()
            {
                string fName = @"C:\tst.xml";
     
                Dictionary<string, string> dct = new Dictionary<string, string>();
     
                using (StreamReader sr = new StreamReader(fName))
                {
                    XPathDocument doc = new XPathDocument(sr);
                    XPathNavigator nav = doc.CreateNavigator();
                    XPathNodeIterator iter = nav.Select("/tests/*");
                    while (iter.MoveNext())
                    {
                        string key = iter.Current.Value.Trim();
     
                        iter.MoveNext();
     
                        string value = iter.Current.Value.Trim();
     
                        dct.Add(key, value);
                    }
                }
     
                return dct;
            }
    Ce code parse le ton fichier. La seule modification que j'ai fais c'est l'utilisation d'un dictionnaire generique (Dictionary<string, string> - C# 2.0) au lieu d'un Hashtable (object, object)

    Bon courage.

Discussions similaires

  1. Convertir un XML en XLS
    Par vanoou dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 15/10/2010, 16h43
  2. [XML] convertir fichier CSV en XML
    Par Yudala dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 16/02/2007, 10h05
  3. [XML] Convertir fichier XLS en deux fichiers XML
    Par Kornoman dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/03/2006, 15h30
  4. Convertir un fichier de données quelconque en un fichier XML
    Par cari dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 06/06/2005, 18h11
  5. [String]Convertir pour xml
    Par Pill_S dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 05/11/2004, 19h41

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