Partage
  • Partager sur Facebook
  • Partager sur Twitter

C# et XML

Lire un fichier xml et assigner son contenu a une variable.

Sujet résolu
    27 juin 2019 à 18:07:42

    Bonjour, je suis actuellement entrain de développer une application en WinForms se présentant comme une boîte à outils regroupant plein de logiciels d'administration.

    J'ai commencé avec une approche plutot fastidieuse, en effet la récupération des outils se faisait via une listbox, quand l'élément séléctionné dans la listbox change, je vérifie son nom avec un if() puis je modifie la description ainsi que les liens correspondants aux boutons.

     if (listBox1.SelectedItem.ToString() == "LatencyMon")
                    {
                        appNameLabel.Text = "LatencyMon";
                        appDescLabel.Text = @"Real-time audio suitability checker for Windows 10 / 8.1 / 8 / 7 / 2016 / 2012 / 2008(x86 and x64) also used as latency monitor";
                        downLink = "https://www.resplendence.com/download/LatencyMon.exe";
                        webLink = "https://www.resplendence.com/downloads";
                    }

    Hors cette solution est bien trop contraignante vis-à-vis de la mise à jour des programmes contenus dans la boîte à outils.

    Je me suis donc penché vers la solution suivante, à l'aide d'un fichier XML je rentre les caractéristiques(Description, liens etc...) puis l'application télécharge ce XML depuis un serveur web. Mais je ne sais pas comment lire le fichier suivant et assigner son contenu à des variables: 

    <root>
      <software name="Rufus">
        <desc>Ceci est une description</desc>
        <dl>https://github.com/pbatard/rufus/releases/download/v3.5/rufus-3.5.exe</dl>
        <web>https://rufus.ie/</web>
      </software>
    <software name="Chrome">
        <desc>Ceci est une description</desc>
        <dl>https://google.com/chrome/chrome.exe</dl>
        <web>https://google.com/chrome//</web>
      </software>
    </root>

    Tel que : 

    string name = "Rufus";
    string desc = "Ceci est une description"
    string dl = "https://github.com/pbatard/rufus/releases/download/v3.5/rufus-3.5.exe"
    string web = "https://rufus.ie"

    J'aimerais également pouvoir lister tout les programmes contenus dans le fichier XML pour les incorporés dans ma listbox.

    Merci d'avance.


    • Partager sur Facebook
    • Partager sur Twitter

    Corentin-Aryox

      27 juin 2019 à 18:45:29

      Salut,

      Pourquoi ne pas plutot utiliser une base de données ?

      En plus ca permettrai de pouvoir faire une interface de modification de ces programmes justement.

      Alors qu'avec un fichier XML, c'est un peu fouilli et pas très pratique.

      • Partager sur Facebook
      • Partager sur Twitter
        28 juin 2019 à 0:16:40

        Finalement j'ai réussi à faire ce que je voulais après un bon bout de temps de recherche, j'ai finalement utilisé me code suivant :

        XmlDocument doc = new XmlDocument();
                    doc.Load(@"C:\Users\Public\Documents\links.xml");
                    foreach (XmlNode node in doc.DocumentElement)
                    {
                        string name = node.Attributes[0].InnerText;
                        if (name == softList.SelectedItem.ToString())
                        {
                            getInfo.Items.Clear();
                            foreach (XmlNode child in node.ChildNodes)
                            {
                                getInfo.Items.Add(child.InnerText);
                            }
                        }
                    }

        Avec getInfo une listbox permettant de sortir les données ^^.

        • Partager sur Facebook
        • Partager sur Twitter

        Corentin-Aryox

          1 juillet 2019 à 11:20:54

          L'utilisation de requête XPath rendrait le code plus simple et plus lisible. ;)
          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          C# et XML

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown