日期:2014-05-20  浏览次数:20959 次

Linq to XML 未将对象引用设置到对象的实例
我是按照书上的方法来做的,但出现了“未将对象引用设置到对象的实例。”,代码以下
C# code

XDocument xtest = XDocument.Load(Server.MapPath ("XMLFile.xml"));
        var x = from s in xtest.Root.Elements("Ad")
                select new
                {
                    ImageUrl = s.Attribute("ImageUrl").Value,
                    NavigateUrl = s.Attribute("NavigateUrl").Value,
                    AlternateText = s.Attribute("AlternateText").Value,
                    Keyword = s.Attribute("Keyword").Value,
                    Impression = s.Attribute("Impression").Value
                };


所以请各位来解答解答。可以的顺便解释一下原因。

------解决方案--------------------
探讨
var x = from s in xtest.Descendants("Ad")
select new
{
ImageUrl = s.Element("ImageUrl").Value,
NavigateUrl = s.Element("N……

------解决方案--------------------
<Impressions>80</Impressions>
mpression = s.Attribute("Impression").Value
写错了
------解决方案--------------------
xtest.Root.Elements("Ad")
这句话是错的啊。load的时候返回的就是根节点,直接写 xtest.Elements("Ad")就可以。

或者那个load的时候直接写
Element xtest=Element.Load(Server.MapPath ("XMLFile.xml"));
使用了Linq就全部使用linq的语法比较好