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
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>