2011-07-10 13 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()))); 
} 

Catchedエラー:未処理の EditXml()関数とNullReferenceExceptionこれは私のプログラムです。あなたは私がそれを修正するのに手伝ってもらえますか?本当にありがとう! :)

答えて

2

あなたはEditXmlにタイプミスを持っている:あなたは「シャネル」の要素を持っていない

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

- あなたは「チャンネル」の要素を持っています。

RSSフィードには正しい名前空間も使用する必要があります。これまでに指定したコードには名前空間は含まれていません。

1

最初に確認する必要があるのは、docがnullではないと思います。

つまり、の前に呼び出されるCreateXml()関数はありますか?

希望します。

1

EditXml()メソッドでチャンネルのスペルが間違っています。

関連する問題