Вставьте элемент XML с помощью LINQ - PullRequest
0 голосов
/ 10 июля 2011

У меня проблема при вставке XML-элемента с использованием LINQ.Это моя программа:

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 ().Ребята, вы можете помочь мне это исправить?Спасибо!:)

Ответы [ 3 ]

2 голосов
/ 10 июля 2011

У вас есть опечатка в EditXml:

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

У вас нет элемента "chanel" - у вас есть элемент "channel".

Однако,вам также следует использовать правильное пространство имен для RSS-канала - код, который вы до сих пор не указали, не содержит пространств имен.

1 голос
/ 10 июля 2011

Вы неправильно написали канал в методе EditXml ().

1 голос
/ 10 июля 2011

Первое, что вы должны проверить, я думаю, что doc не равно нулю.

Другими словами, функция CreateXml() вызывается до HandlingData()?

Надеюсь, это поможет.

...