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

Messages postés
5
Date d'inscription
lundi 25 août 2008
Dernière intervention
28 août 2008
- - Dernière réponse : cs_bisoubebe
Messages postés
5
Date d'inscription
lundi 25 août 2008
Dernière intervention
28 août 2008
- 28 août 2008 à 21:15
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
16
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
16
0
Merci
A noter que l'autre noeud toto (alias </toto>) est du type: XmlNodeType.EndElement .


Billou_13
Commenter la réponse de billou_13
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Dernière intervention
18 septembre 2009
0
Merci
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...

@+
Commenter la réponse de maitredede
Messages postés
5
Date d'inscription
lundi 25 août 2008
Dernière intervention
28 août 2008
0
Merci
merci justement j'avais oublié ce details
mersi
Commenter la réponse de cs_bisoubebe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.