XML et Childnode

cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011 - 27 févr. 2008 à 21:38
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011 - 27 févr. 2008 à 22:48
Bonjour, je commence tout juste à exploter la fonction xmlReader et me voilàa deja bloqué:
Je souhaite ajouter dans une combobox tous les noeud enfants d'un noeud parent: j'ai donc le code suivant:

            string[] noeuds = new string[5000];
            string noeudfils;

            XmlTextReader readxml = new XmlTextReader(xmlpath);
            XmlDocument configfile = new XmlDocument();
            configfile.Load(readxml);
            XmlNode noeud = configfile.DocumentElement;
          
 for (int i = 0; i > noeud.ChildNodes.Count; i++)
            {
                noeudfils = noeud.ChildNodes[i].Name.ToString();
                noeuds[i] = noeudfils;
            }
            for (int j=0;j>noeuds.Length;j++)
            {
                selectnode.Items.Add(noeuds[j]);
            }

Au final, pas d'erreur, mais strictement aucun item dans la combobox, pourtant si j'utilise le code:

             string file = openXML.FileName;

            string[] noeuds = new string[5000];


            xmlpath = (Path.GetDirectoryName(file) + "/" + Path.GetFileName(file));

            XmlTextReader readxml = new XmlTextReader(xmlpath);

            XmlDocument configfile = new XmlDocument();

            configfile.Load(readxml);


            XmlNode noeud = configfile.DocumentElement;

            selectnode.Items.Add(noeud.LastChild.Name);

J'ai alors tout de même le dernier noeud qui s'affiche dans la comboBox... Je ne comprends pas vraiment....

En vous remerciant par avance de votre aide,
Cordialement,
Anz.

6 réponses

cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
27 févr. 2008 à 21:50
En fait j'aurais pu faire plus simple ^^

for (int i = 0; i > noeud.ChildNodes.Count; i++)
            {
                selectnode.Items.Add(noeud.ChildNodes[i].Name.ToString());
            }

mais heuuuu.. ça marche pas non plus :'(
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 févr. 2008 à 21:52
Salut

configfile.Load(readxml);

Mets à la place le nom du fichier
configfile.Load(@"c:\....xml");

Et la tu utiliseras de la lecture DOM(memoire load) et non SAX (flux xmlreader)
Le sax est une lecture en continue, et ne permet pas la modification de noeud.
0
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
27 févr. 2008 à 22:04
Hum merci bien pour ta réponse, seuleument, le résultat reste le même.. toujours aucun item dans ma comboBox :s

Merci encore pour ton attention.

Anz.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 févr. 2008 à 22:25
Comme ça ce donne quoi

xmlDOc.Load("XX.xml");
 
XmlNode objRootNode = xmlDOc.DocumentElement;
 
foreach(XmlNode nd in objRootNode.ChildNodes)
{
comboBox1.Items.Add( nd.InnerText);
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 févr. 2008 à 22:44
Salut,
Dans le for, il ne faut pas mettre un > mais un  <

<hr />
-My Blog-
0
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
27 févr. 2008 à 22:48
Ca fonctionne nikel !!

Merci beaucoup à toi, bonne soirée ! :)

Cordialement,
Anz.
0
Rejoignez-nous