Я пытаюсь прочитать файл xml с помощью xmlTextReader и сохранить его в списке, но я изо всех сил пытаюсь преодолеть эту досадную небольшую ошибку. Позвольте мне объяснить немного больше:
Я сохраняю все узлы из файла в XmlNodeList и использую цикл foreach для чтения каждого узла и добавления его в свой список, используя этот шаблон класса:
public class getGamesList
{
public int id { get; set; }
public string title { get; set; }
public string release { get; set; }
public string platform { get; set; }
}
Вот основной код:
List<getGamesList> list = new List<getGamesList>();
String URLString = "http://thegamesdb.net/api/GetGamesList.php?name="+name;
XmlTextReader tr = new XmlTextReader(URLString);
XmlDocument xml = new XmlDocument();
xml.Load(tr);
XmlNodeList xnList = xml.SelectNodes("/Data/Game");
foreach (XmlNode xn in xnList)
{
list.Add(new getGamesList()
{
id = Convert.ToInt32(xn["id"].InnerText),
title = xn["GameTitle"].InnerText,
release = xn["ReleaseDate"].InnerXml,
platform = xn["Platform"].InnerText
});
}
Код работает нормально до третьего элемента xml, где отсутствует узел «ReleaseDate». Его просто нет. Так что вылетает ошибка.
Я знаю, что мне нужно найти способ проверить, существует ли узел, прежде чем я его прочитаю, но я немного запутался; ничего пока не удалось. У кого-нибудь есть какие-либо идеи? Спасибо.