Je viens tout juste de publier un article sur la tentative d'utilisation d'un XMLTextReader, ce que j'ai finalement fait. Malheureusement, maintenant je ne peux pas l'obtenir pour prendre les données du fichier XML parce que je fais quelque chose de mal avec mes instructions if. Je dois avoir ces instructions if dans une autre instruction if car elles nécessitent que la classe Student soit créée en premier. Je n'ai aucune idée de comment aborder cela plus. Voici mon code, je suis sûr que c'est quelque chose de stupide. Je ne suis pas un bon codage, donc je sais que c'est quelque chose qui me manque.Les instructions If imbriquées ne fonctionnent pas
while (reader.Read())
{
reader.MoveToContent();
if (reader.NodeType == XmlNodeType.Element && reader.Name == "student")
{
Student s = new Student();
if (reader.Name == "id")
{
s.ID = reader.ReadString();
}
if (reader.Name == "firstname")
{
s.FirstName = reader.ReadString();
}
if (reader.Name == "lastname")
{
s.LastName = reader.ReadString();
}
if (reader.Name == "score")
{
s.TestScores.Add(Convert.ToInt32(reader.ReadString()));
}
s.Average = 6.00;
Students.Add(s);
}
}
[EDIT] Même après que je dis la xmlreader de passer à la ligne suivante avec reader.MoveToCOntent(); il saute toujours toutes les instructions if. Je suis des débutants dans la programmation, j'apprécierais de nouvelles idées et suggestions.
Alors qu'est-ce que "ne fonctionne pas", et * comment * ça ne marche pas? Sauf si le problème * real * peut être résumé dans le titre, cela devrait être fermé. –
L'anwer le plus pertinent pour votre autre question: __ne pas utiliser XmlReader__ (sauf si vos données dépassent 100 Mo) –
Utilisez le débogueur pour vérifier si votre première instruction if est valide, puis passez à la suivante. Cependant, il semble étrange que vous vérifiiez si reader.Name == "student" et que vous vérifiiez à nouveau si reader.Name == "quelque chose de différent". –