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>
我应该在代码中的哪个位置进行更改,以便我可以避免错误。
答案 0 :(得分:1)
我怀疑问题是你的国家没有“代码”属性。你可以这样避免:
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并写出您选择的每个条目 - 这样可以更容易找出出错的地方。