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