Aide sur une Somme de Noeud XML

vladvonjim Messages postés 1 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 27 octobre 2011 - 27 oct. 2011 à 11:40
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 - 27 oct. 2011 à 14:06
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

BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
27 oct. 2011 à 14:06
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...
0
Rejoignez-nous