2011-07-10 119 views
0

使用LINQ插入XML元素時出現問題。這是我的計劃:使用LINQ插入XML元素

XDocument doc; 

protected void CreateXml() 
{ 
    doc = new XDocument(
     new XDeclaration("1.0", "utf-8", "yes"), 
     new XComment("Sample RSS Feed"), 
     new XElement("rss", 
      new XAttribute("version", "2.0"), 
      new XElement("channel", 
       new XElement("title", "aaa"), 
       new XElement("description", "bbb"), 
       new XElement("link", "http://abcd.com"), 
       new XElement("language", "en")) 
      ) 
     ); 
} 

protected void HandlingData() 
{ 
    //... 
    EditXml(); 
} 

protected void EditXml() 
{ 
    doc.Element("rss").Element("chanel") 
     .Element("language").AddAfterSelf(
      new XElement("item", new XElement("title", "ccc"), 
      new XElement("link","..."), 
      new XElement("pubDate", 
       DateTime.Now.ToUniversalTime()))); 
} 

逮住錯誤:的NullReferenceException未處理在EditXml()函數。你們能幫我解決嗎?非常感謝! :)

回答

2

你有一個錯字在EditXml

doc.Element("rss").Element("chanel")... 

你沒有「香奈兒」元素 - 你有一個「通道」元素。

但是,您還應該爲RSS提要使用正確的名稱空間 - 您迄今爲止給出的代碼不包含任何名稱空間。

1

你應該檢查的第一件事我認爲是doc不爲空。

也就是說CreateXml()之前調用的函數是HandlingData()

希望它有幫助。

1

您在EditXml()方法中拼寫錯誤。