private void alterNodeValue(string xmlFile, string parent, string node, string newVal)
{
XDocument xml = XDocument.Load(this.dir + xmlFile);
if (xml.Element(parent).Element(node).Value != null)
{
xml.Element(parent).Element(node).Value = newVal;
}
else
{
xml.Element(parent).Add(new XElement(node, newVal));
}
xml.Save(dir + xmlFile);
}
为什么这掷为什么会抛出NullReferenceException?
System.NullReferenceException是由用户代码
未处理的在这条线
if (xml.Element(parent).Element(node).Value != null)
?
我猜这是因为XML节点不存在,但这就是!= null
应该检查的内容。我如何解决这个问题?
我试过几件事情,它们都在非空检查期间的某个时刻抛出相同的异常。
感谢您的任何帮助。
存在父节点没有。我试图抓住'Element(node)== null'并通过'else'语句添加它。 – PiZzL3 2011-03-27 19:15:47
@ PiZzL3 - 如果你知道它不存在,你为什么在_non existent_节点上做'.Value'? – Oded 2011-03-27 19:17:58
我仍然在学习如何正确使用'XDocument'。我不知道所有的细节。 – PiZzL3 2011-03-27 19:19:54