none
parsing de fichier XML RRS feed

  • Question

  • Bonjour,

    j'ai le fichier xml suivant :

     

      <

     

     

        <

        <

        <

        <

     

        <

        <

        <

        <

      </stat>

    </

    stats>

    je souhaiterais afficher dans un datagridView les infos suivantes : ca_mois, ca_moyenne_jour et ca_prec.

    Car en effet ce que j'ai uniquement réussit à faire c'est afficher la totalité des infos sous forme de tableaux,

    grace à la methode ReadXml.

    Donc si vous m'avez bien compris, faut que je puisse afficher que ce qui m'interesse. J'aurais besoin de savoir par quelle methode.

    Merci d'avance de votre aide

     

     

    <stats> stat>     <nb_cmd>651</nb_cmd>     <nb_produit_vendus>1489</nb_produit_vendus> ca_mois>23936.63</ca_mois> ca_moyenne_jour>957.47</ca_moyenne_jour> prix_moyen_cmd>36.77</prix_moyen_cmd> prix_moyen_produit>16.08</prix_moyen_produit>     <ca>295092.46</ca> ca_prec>265844.58</ca_prec> nb_utilisateur>18631</nb_utilisateur> nb_utilisateur_cmd>12009</nb_utilisateur_cmd> nb_utilisateur_newsletter>12388</nb_utilisateur_newsletter>
    vendredi 26 novembre 2010 12:56

Réponses

  • Bonjour,

     

    Consultez cet exemple pour l’utilisation de Linq to XML avec un DataTable :

    http://naspinski.net/post/XML-to-DataTable-with-LINQ.aspx

     

    Vous pouvez modifier le code pour sélecter dans le DataTable seulement les éléments qui vous intéressent, en ajoutant une condition dans le foreach :

    public DataTable XElementToDataTable(XElement x)

            {

                DataTable dt = new DataTable();

     

                XElement setup = (from p in x.Descendants() select p).First();

                foreach (XElement xe in setup.Descendants())

                {

                    if (xe.Name == "au_id")

                    dt.Columns.Add(new DataColumn(xe.Name.ToString(), typeof(string)));

                }

                var all = from p in x.Descendants(setup.Name.ToString()) select p;

                foreach (XElement xe in all)

                {

                    DataRow dr = dt.NewRow();

                    foreach (XElement xe2 in xe.Descendants())

                        if (xe2.Name == "au_id")

                        dr[xe2.Name.ToString()] = xe2.Value;

                    dt.Rows.Add(dr);

                }

                return dt;

            }

     

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    dimanche 28 novembre 2010 12:17