XML dans DataSet

Utilisateur anonyme - 7 juin 2010 à 18:21
 Utilisateur anonyme - 8 juin 2010 à 15:52
Bonjour,
j'essaye de passer un XML dans un Dataset mais j'ai un petit soucis.

En fait mon code fonctionne bien mais je ne vois pas comment obtenir le résultat voulu.

Donc j'ai un XML avec plusieurs niveau exemple :

1er article (Nom, origine)
1 taille pour l'article
1 autre taille pour l'article
...
2ème article
...

Alors mon code pour cette exemple crée 2 tables. Une avec le premier niveau qui est celui du nom, ... et une autre avec le deuxième niveau qui est celui des tailles proposé.

Donc avec ça, je ne peux pas faire de liaison entre les 2 tables car dans la table des tailles je ne trouve que des tailles et aucune référence d'article pour faire la liaison avec la table des noms

Mais en fait moi il me faut 1 table avec toutes ces données par exemple.

une colonne nom, une colonne origine, une colonne taille. Dans ce cas j'aurais plusieurs lignes pour un seul article c'est sur mais ce n'est pas grave.

Quelqu'un sait-il comment ajouter tout les noeuds du XML dans une seule et unique table de dataset ?

Cdlt, merci d'avance pour votre aide


Ceux qui excellent dans la résolution de problème, les résolvent avant qu'ils n'apparaissent

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
7 juin 2010 à 20:53
Salut,

Voici un code en esperant que ca correspondent legerement à ce que tu cherches.

C'est un code rapide

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(@"


<Taille>1</Taille>
<Taille>2</Taille>


<Taille>5</Taille>
<Taille>6</Taille>


");

            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Article",typeof(String)));
            dt.Columns.Add(new DataColumn("Taille", typeof(String)));

            foreach (XmlNode r in xmlDoc.GetElementsByTagName("Taille")) 
            {
                DataRow dr = dt.NewRow();
                dr["Article"] = r.ParentNode.Attributes["id"].Value;
                dr["Taille"] = r.InnerText;
                dt.Rows.Add(dr);
            }


Bon dev
0
Utilisateur anonyme
8 juin 2010 à 15:52
Hello merci pour ton message, mais entre temps, j'ai redévelopper entièrement mon appli et mnt c'est ok.

++, cdlt


Ceux qui excellent dans la résolution de problème, les résolvent avant qu'ils n'apparaissent
0
Rejoignez-nous