使用LINQ插入XML元素

时间:2011-07-10 14:09:25

标签: c# xml linq xelement

使用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())));
}

捕获错误:EditXml()函数中的 NullReferenceException未处理。你能帮帮我解决这个问题吗?非常感谢! :)

3 个答案:

答案 0 :(得分:2)

你在EditXml中输了一个拼写错误:

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

你没有“chanel”元素 - 你有一个“频道”元素。

但是,您还应该为RSS提要使用正确的命名空间 - 到目前为止您提供的代码不包含任何命名空间。

答案 1 :(得分:1)

首先你要检查我认为doc不是空的。

换句话说,是CreateXml()之前调用的HandlingData()函数?

希望它有所帮助。

答案 2 :(得分:1)

您在EditXml()方法中拼错了频道。