XmlReader.Create输出无

时间:2015-07-25 21:09:34

标签: c# xml asp.net-mvc model-view-controller xml-parsing

所以我试图在C#MVC中创建RSS阅读器,但我仍然坚持从RSS源检索数据。标题中的方法始终为none。

以下是代码:

    [OutputCache(Duration=1000)]
    public ActionResult Bar()
    {
        string url = "http://eu.battle.net/wow/en/feed/news";
        var link = new Uri("http://eu.battle.net/wow/en/feed/news");
        XmlReader reader = XmlReader.Create(url);
        SyndicationFeed feed = SyndicationFeed.Load(reader);
        while (reader.Read())
        {
            foreach (SyndicationItem item in feed.Items)
            {
                String subject = item.Title.Text;
                String summary = item.Summary.Text;
            }
        }
        reader.Close();

        //Don't know how to produce the output yet
        return View();
    }

有些人可以帮助我使用这些功能吗?

@edit

所以我让它几乎工作,它现在得到我在标题/摘要中的值,但我不知道如何输出它来查看(可能是partialview)。 新代码:

    [OutputCache(Duration=1000)]
    public ActionResult Bar()
    {
        string url = "http://eu.battle.net/wow/en/feed/news";
        var link = new Uri("http://eu.battle.net/wow/en/feed/news");
        XmlReader reader = XmlReader.Create(url);
        while (reader.Read())
        {       
            SyndicationFeed feed = SyndicationFeed.Load(reader);

            foreach (SyndicationItem item in feed.Items)
            {
                String subject = item.Title.Text;
                String summary = item.Summary.Text;
            }
        }
        reader.Close();

        //Don't know how to produce the output yet
        return View();
    }

@last编辑 任何人都知道如何打印它所以它显示整个列表?正如我所说,值在标题/摘要中发生了变化,但输出只是最后一项。

  return PartialView("_Bar");

和部分观点:

<div class="row">

    <p>@ViewBag.tytul</p>
    <p>@ViewBag.opis</p>

</div>

1 个答案:

答案 0 :(得分:0)

你不需要这个( while (reader.Read()) )循环

string url = "http://eu.battle.net/wow/en/feed/news";
using (XmlReader reader = XmlReader.Create(url))
{
    SyndicationFeed feed = SyndicationFeed.Load(reader);

    foreach (SyndicationItem item in feed.Items)
    {
        String subject = item.Title.Text;
        String summary = item.Summary.Text;
    }
}