我尝试使用XmlDocument加载xml文件。但是,代码总是返回“对象引用未设置为对象的实例”错误。
namespace TestP2
{
class Program
{
static void Main()
{
XmlDocument xd = new XmlDocument();
xd.Load(@"c:\1\1.xml");
XmlNodeList nodelist = xd.SelectNodes("E1/E2/E3");
foreach (XmlNode node in nodelist)
{
string test = "";
test += node.Attributes.GetNamedItem("function").Value;
Console.WriteLine(test);
}
}
}
}
我该如何解决这个问题?
答案 0 :(得分:3)
此代码存在漏洞,并且没有任何其他解释,其中任何一个都可能是原因。
xd.SelectNodes("E1/E2/E3")
会返回一个值吗?如果它返回null,则foreach
语句将抛出异常。 node.Attributes.GetNamedItem("function")
在任何情况下都会返回null吗?如果是这样,那么当您请求.Value
时,它将抛出异常。 答案 1 :(得分:2)
你的'代码'是这样做的,因为有一个对象引用不存在的东西。您可以通过调试和检查哪个对象引用此不存在的对象来解决此问题。
对于XML,很可能无法找到节点或属性。但是,如果没有完整的错误消息和XML,则无法为您解决此问题。
答案 2 :(得分:1)
我怀疑.Value可能为null或未初始化。请检查堆栈跟踪并验证。