Ошибка загрузки содержимого из файла XML в выпадающий список - PullRequest
0 голосов
/ 05 апреля 2010
private void BindCountry()
{
    XmlDocument doc = new XmlDocument();
    doc.Load(Server.MapPath("countries.xml"));

    foreach (XmlNode node in doc.SelectNodes("//country"))
    {
        usrlocationddl.Items.Add(new ListItem(node.InnerText, node.Attributes["codes"].InnerText));
    }
}

Приведенный выше код используется для загрузки списка стран из XML-файла в раскрывающийся список. Но при этом я сталкиваюсь с ошибкой Null Reference.

Ссылка на объект не установлена ​​на экземпляр объекта.

Содержимое XML-файла:

<countries>
  <country code="AF" iso="4">Afghanistan</country>
  <country code="AL" iso="8">Albania</country>
</countries>

Где в коде я должен измениться, чтобы избежать ошибки.

1 Ответ

1 голос
/ 05 апреля 2010

Я подозреваю, что проблема в том, что у вас есть страна без атрибута "коды". Вы можете избежать этого следующим образом:

private void BindCountry()
{
    XmlDocument doc = new XmlDocument();
    doc.Load(Server.MapPath("countries.xml"));

    foreach (XmlNode node in doc.SelectNodes("//country"))
    {
        XmlAttribute attr = node.Attributes["codes"];
        if (attr != null)
        {
            usrlocationddl.Items.Add(new ListItem(node.InnerText, attr.Value));
        }
    }
}

Если это не поможет, я предлагаю вам написать простое консольное приложение, чтобы попытаться загрузить XML и записать каждую выбранную вами запись - это должно упростить процесс определения того, что происходит не так.

...