使用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未处理。你能帮帮我解决这个问题吗?非常感谢! :)
答案 0 :(得分:2)
你在EditXml
中输了一个拼写错误:
doc.Element("rss").Element("chanel")...
你没有“chanel”元素 - 你有一个“频道”元素。
但是,您还应该为RSS提要使用正确的命名空间 - 到目前为止您提供的代码不包含任何命名空间。
答案 1 :(得分:1)
首先你要检查我认为doc
不是空的。
换句话说,是CreateXml()
之前调用的HandlingData()
函数?
希望它有所帮助。
答案 2 :(得分:1)
您在EditXml()方法中拼错了频道。