XML Vers DATASET

PtitRun Messages postés 6 Date d'inscription samedi 27 septembre 2008 Statut Membre Dernière intervention 27 octobre 2009 - 20 févr. 2009 à 16:14
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 - 20 févr. 2009 à 22:07
Salut à tous !

J'ai besoin de récupérer des informations provenant d'un fichier xml. (pas de problème pour l'instant, avec dataset.ReadXml).
Le seul ennuie que j'ai c'est que je n'arrive pas à sélectionner quels valeur je veux récupérer dans mon dataset...
Pour être plus clair :
un bout de mon fichier xml :
<?xml version="1.0" encoding="utf-8"?>
<Document>
  <Entete>
    <Type>Cde fournisseur</Type>
    <Numero>88</Numero>
    <Commentaire></Commentaire>
    555

    <Date>2/20/2009</Date>
  </Entete>
 
    38
    5
    14
    1
    1
    1
    1
 
</Document>

Mon dataset doit Contenir une table "Articles" avec pour champs :
    Id (qui reprendra les valeurs de l'attribut "id" des noeuds "Art")
    Designation(qui reprendra les valeurs de l'attribut "des" des noeuds "Art")
    Quantite (qui reprendra la valeur de chaque noeud "Art")

J'ai commencé à regardé vers les Schémas mais je m'y perd un peu

Auriez vous un conseil à me donner ?

Merci d'avance !

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
20 févr. 2009 à 22:07
Salut,

Je pense qu"il faut faire le remplissage de ta datatable de ton dataset à la main.

1 --> Faire des datacolumn typée
2 --> Faire une boucle pour lire les articles
3 --> Sur chaque ligne faire une requete XPATH pour recuperer ce que tu veux
 (NB si tu est en FK 3.0) une requete linq peut faire l'affaire aussi. (cf linq2xml)
4--> Inserer la ligne dans la datatable

  XDocument r = XDocument.Load("pays.xml");

           var pays = from p in r.Descendants("Pays")
                       select new Pays { Nom p.Value, Id p.Attribute("Id").Value

 class Pays

    {

        public string Nom { get; set; }

       public string Id { get; set; }

    }

<?xml version="1.0" encoding="utf-8" ?>



  France



  Italie



  Corée



  Australie
0