C# .NET MVC Linq->XML RSS阅读器:Twitter XML解析错误
似乎无论我做什么,我都无法在我的视图中显示我的twitter RSS提要。我没有收到任何错误,RSS提要加载正确,我只是无法获取模型的信息 这是我的视图模型C# .NET MVC Linq->XML RSS阅读器:Twitter XML解析错误,c#,.net,asp.net-mvc,xml,linq-to-xml,C#,.net,Asp.net Mvc,Xml,Linq To Xml,似乎无论我做什么,我都无法在我的视图中显示我的twitter RSS提要。我没有收到任何错误,RSS提要加载正确,我只是无法获取模型的信息 这是我的视图模型 namespace MvcMusicStore.ViewModels { public class HomeRssFeedViewModel { public IEnumerable<TwitterPosts> Tweets { get; set; } public HomeRs
namespace MvcMusicStore.ViewModels
{
public class HomeRssFeedViewModel
{
public IEnumerable<TwitterPosts> Tweets { get; set; }
public HomeRssFeedViewModel()
{
Tweets = GetPosts();
}
public IEnumerable<TwitterPosts> GetPosts()
{
var xmlTreeTwitter = XDocument.Load("http://twitter.com/statuses/user_timeline/...");
XNamespace xmlns = "http://www.w3.org/2005/Atom";
return from item in xmlTreeTwitter.Descendants(xmlns + "item")
select new TwitterPosts
{
pubDate = item.Element(xmlns + "pubDate").Value,
Title = item.Element(xmlns + "Title").Value,
Link = item.Element(xmlns + "link").Value
};
}
public class TwitterPosts
{
public string pubDate { get; set; }
public string Title { get; set; }
public string Link { get; set; }
}
}
}
以下是我的看法:
%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcMusicStore.ViewModels.HomeRssFeedViewModel>" %>
...
<div class="rss">
<% foreach(var tweet in Model.Tweets)
{%>
<b><%: tweet.Title %></b>
<% } %>
</div>
我怀疑问题出在XML解析中。您正确地加载了tweets,但xmlTreeTwitter.subjections函数不返回任何内容,最后您的model.tweets.Count等于0,这就是您无法在视图中获得任何输出的原因。确保您使用了正确的名称空间和正确的选择器来解析XML响应。我怀疑问题出在您的XML解析中。您正确地加载了tweets,但xmlTreeTwitter.subjections函数不返回任何内容,最后您的model.tweets.Count等于0,这就是您无法在视图中获得任何输出的原因。确保您使用了正确的名称空间和正确的选择器来解析XML响应。您的LINQ查询就是问题所在。以下工作将起作用:
public IEnumerable<TwitterPosts> GetPosts()
{
var xmlTreeTwitter = XDocument.Load("http://twitter.com/statuses/user_timeline/#####.rss");
var v = from item in xmlTreeTwitter.Descendants("rss").Elements("channel").Elements("item")
select new TwitterPosts
{
pubDate = item.Element("pubDate").Value,
Title = item.Element("title").Value,
Link = item.Element("link").Value
};
return v;
}
public class TwitterPosts
{
public string pubDate { get; set; }
public string Title { get; set; }
public string Link { get; set; }
}
您的LINQ查询就是问题所在。以下工作将起作用:
public IEnumerable<TwitterPosts> GetPosts()
{
var xmlTreeTwitter = XDocument.Load("http://twitter.com/statuses/user_timeline/#####.rss");
var v = from item in xmlTreeTwitter.Descendants("rss").Elements("channel").Elements("item")
select new TwitterPosts
{
pubDate = item.Element("pubDate").Value,
Title = item.Element("title").Value,
Link = item.Element("link").Value
};
return v;
}
public class TwitterPosts
{
public string pubDate { get; set; }
public string Title { get; set; }
public string Link { get; set; }
}