Aide sur une Somme de Noeud XML

Signaler
Messages postés
1
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
27 octobre 2011
-
Messages postés
15189
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
29 novembre 2021
-
J'ai du mal à faire la somme de plusieurs nœud ayant le même nom dans un même fichier XML et j'essaye d'écrire ma variable dans un fichier texte pour contrôler la valeur mais ça ne marche pas non plus.
Je précise que je suis un gros débutant (5 jours d'auto-apprentissage) soyez indulgent merci.
private long income = 0;

            string tlist = "http://monurlxml";
            XmlDocument list1 = new XmlDocument();
            list1.Load(tlist);
            XmlNodeList elementsByTagName = list1.DocumentElement.GetElementsByTagName("MonNoeud");
            for (int i = 0; i < elementsByTagName.Count; i++)
            {
                income = income + Convert.ToInt64(elementsByTagName[i].InnerXml.ToString());                
                
                StreamWriter writer;
                string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);
                string Tincome = directoryName + @"\settings\Tincome.txt";
                if (!System.IO.File.Exists(Tincome))
                {
                    using (writer = System.IO.File.CreateText(Tincome))
                    {
                    }
                    using (StreamWriter writer2 = new StreamWriter(Tincome))
                    {
                        writer2.Write(income);
                    }
                }
            }

1 réponse

Messages postés
15189
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
29 novembre 2021
100
Hello,
Qu'entends par "faire la somme de noeuds xml"? En soi, cela ne veut rien dire, mais j'imagine que tes balises xml ont des valeurs de type entier ou flottant et donc, tu aimerais en faire la somme.
Right?
De plus, on sent quelque copier/coller non maitrisé dans ton code...

Voici ce que je te propose (non testé):
private long income = 0;
string tlist = "http://monurlxml";
XmlDocument list1 = new XmlDocument();
list1.Load(tlist);
XmlNodeList nodeList = xml.SelectNodes("/baliseParent/baliseVoulue"); // à toi d'indiquer le bon "chemin"
foreach (XmlNode node in nodeList)
{
  income += Convert.ToInt32(node.InnerText); // attention, vérifie le type que tu as: int, float,...
}


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...