Недавно я опубликовал сообщение о попытке заставить XMLTextReader работать, и я, наконец, сделал. К сожалению, теперь я не могу заставить его взять данные из XML-файла, потому что я делаю что-то не так с моими операторами if. Мне нужно иметь эти операторы if внутри другого оператора if, потому что им нужно сначала создать класс Student. Я понятия не имею, как подойти к этому больше. Ниже мой код, я уверен, что это что-то глупое. Я не очень хорошо кодирую, поэтому я знаю его кое-что, что мне не хватает.Вложенные, если заявления не работают
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] Даже после того, как я говорю XMLReader, чтобы перейти к следующей строке с reader.MoveToCOntent(); он все еще пропускает все утверждения if.
Я начинаю программировать, буду признателен за любые новые идеи и предложения.
Итак, что «не работает», и * как * это не работает? Если в названии не может быть сформулирована * реальная * проблема, это должно быть закрыто. –
Более релевантный anwer по вашему другому вопросу: __do не использовать XmlReader__ (если ваши данные не намного> 100 МБ) –
Используйте отладчик, чтобы проверить, действителен ли ваш первый оператор if, а затем перейти к следующему. Тем не менее, кажется странным, что вы проверяете, читает ли читатель.Name == «student», а затем снова проверяет, читает ли читатель.Name == «что-то другое». –