Я подозреваю, что проблема в том, что у вас есть страна без атрибута "коды". Вы можете избежать этого следующим образом:
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 и записать каждую выбранную вами запись - это должно упростить процесс определения того, что происходит не так.