2010-10-21 17 views
1

拋出一個NullReferenceException由運行時拋出,當我使用下面的函數轉換成的XElement XmlNode的:C#:空引用異常,同時使用XmlDocment

public static XmlNode GetXmlNode(this XElement element) 
{ 
    using (XmlReader xmlReader = element.CreateReader()) 
    { 
     XmlDocument xmlDoc = new XmlDocument(); 
     xmlDoc.Load(xmlReader); 
     xmlDoc.ChildNodes[4].InnerXml = "0.15"; ====> null reference exception occurs here 
     return xmlDoc; 
    } 
} 

我如何可以轉換的XElement到XmlNode的沒有這個問題?

+0

當您嘗試訪問不存在的節點時,ChildNodes(一個XmlNodeList)是否會將索引超出範圍異常或返回null?你確定你試圖改變的節點存在嗎? – 2010-10-21 04:31:41

+0

它存在它不會拋出異常 – ratty 2010-10-21 04:33:27

+0

我喜歡將XElement轉換成xmlnode – ratty 2010-10-21 04:42:18

回答

2

訪問DocumentElement一是爲了獲取根:

xmlDoc.DocumentElement.ChildNodes[4].InnerXml = "0.15"; 

編輯:XmlNodeXmlDocument繼承。你應該能夠簡單地做到這一點:

XmlNode node = xmlDoc.DocumentElement; 
return node; 

如果你需要投它,你可以使用(XmlNode)xmlDoc.DocumentElementxmlDoc.DocumentElement as XmlNode一個特定的方法。

+0

我如何將它轉換成XMLNode – ratty 2010-10-21 04:44:34

+0

@ratty參見我的編輯。 – 2010-10-21 04:59:47