Lire plusieurs attribut dans node.element de XML [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 25 août 2008
Statut
Membre
Dernière intervention
28 août 2008
-
Messages postés
5
Date d'inscription
lundi 25 août 2008
Statut
Membre
Dernière intervention
28 août 2008
-
Bonjour,
j'ai essayé de fouiller dans le site mais pas de solution.
Probleme: je veux lire les attributs de certains elements de mon fichier XML
mais il ne lit que le premier elt et et le deuxième non car 0attribut, pourquoi je ne sais
pas , voici mon code et mersi d'avance pour votre aide.

xmltextreader tx;
while (tx.read())
{
      switch (tx.name)
      { 
          case "toto"
               string name= tx.getattribute("name");
                string mark = tx.getattribut("mark";);
            break;
      }
}
et mon XML est réprésenter par exemple comme ceci:
<toto name= "test1" mark "euro">
</toto>
<toto name = "test2" mark "Dm">
</toto>
je veux qu'il me renvoi le nom et le mark pour les deux cas
de toto, mais il renvoie bien au premier tour, maus au deuxième 
tx.read à 0 attribut. je ne sais pas pourquoi, et mersi de m'aider 
mersi

4 réponses

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Bonjour,

C'est normal que ton deuxième passage renvoie rien car le 'switch() case "toto"' s'arrête aussi sur l'élément "</toto>". C'est un élément toto qui représente une fin de noeud.
Donc, je te conseille d'ajouter le test suivant:
xmltextreader tx;
while (tx.read())
{
if(tx.NodeType == XmlNodeType.Element)
{
switch (tx.name)
{
case "toto"
string name= tx.getattribute("name");
string mark = tx.getattribut("mark";);
break;
}
}
}

Deuxième petit conseil:
Tu devrais déclarer un noeud parent à tes deux noeuds "toto". Car un fichier XML contient toujours un noeud parent de tous.
Par exemple:
<totos>
<toto name= "test1" mark "euro">
</toto>
<toto name = "test2" mark "Dm">
</toto>
</totos>

Voila,


Billou_13
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
A noter que l'autre noeud toto (alias </toto>) est du type: XmlNodeType.EndElement .


Billou_13
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Bonjour,

Et passer par un XmlDocument ne te simplifierai pas la vie ? A moins que tu ne travaille sur des flux ou des gros fichiers...

@+
Messages postés
5
Date d'inscription
lundi 25 août 2008
Statut
Membre
Dernière intervention
28 août 2008

merci justement j'avais oublié ce details
mersi