-->

阅读特定标签的RSS源(Read specific tag in a RSS feed)

2019-09-19 11:23发布

我有以下的RSS提要。 我想读一个具体的描述标签上的信息。 比如我想在描述标签中的信息时,它的标题标签由当前day.I的无法弄清楚如何做到这一点。 请帮忙

<item>
<title>Forecast for Saturday as of Jul. 14 5:30 AM IST</title> //If today is Saturday get information in description tag
<link>http://www.wunderground.com/global/stations/43466.html</link>    
  <description>
Thunderstorm. Low:26 &amp;deg; C.
  </description>
  <pubDate>Sat, 14 Jul 2012 00:00:00 GMT</pubDate>
  <guid isPermaLink="false">1342267200-1-night</guid>
</item>
<item>
<title>Forecast for Sunday as of Jul. 14 5:30 AM IST</title>
<link>http://www.wunderground.com/global/stations/43466.html</link>
  <description>
Chance of a Thunderstorm. High:30 &amp;deg; C.
  </description>
  <pubDate>Sat, 14 Jul 2012 00:00:00 GMT</pubDate>
  <guid isPermaLink="false">1342353600-2-day</guid>
 </item>

我能够使用来获得当前天:

string datenow = DateTime.Today.ToString("dddd / M / yyyy");
string[] words= datenow.Split(' ');
string day = words[0];

这就是我读RSS提要:

 public class RssReader
    {
        public static List<RssNews> Read(string url)
        {
            var webClient = new WebClient();

            string result = webClient.DownloadString(url);

            XDocument document = XDocument.Parse(result);

            return (from descendant in document.Descendants("item")
                    select new RssNews()
                    {
                        Description = descendant.Element("description").Value,
                        Title = descendant.Element("title").Value,
                        PublicationDate = descendant.Element("pubDate").Value
                    }).ToList();
        }
    }

Answer 1:

按照您的要求,你只想得到当天的说明。你有名单的新闻有标题,说明..等,现在你可以改变你的类(在你的类添加一个方法)饲料,如果一天是当前日期

公共静态字符串GetCurrentDayDescription(){

   var lst = Read("url");
   var resDescription = (from x in lst where x.Title.Contains(day) 
                          select x.Description).ToArray() ;
    return resDescription[0] ;
}


Answer 2:

你应该能够使用XmlSerializer的直接反序列化RSS提要,无需手动映射。您将需要修改RssNews反对正确映射,例如:

[XmlRoot(ElementName="item")]
public class RssNews
{
    [XmlElement(ElementName = "title")]
    public string Title { get; set; }

    [XmlElement(ElementName = "pubDate")]
    public string PublicationDate  { get; set; }

    [XmlElement(ElementName = "description")]
    public string Description { get; set; }

    [XmlElement(ElementName = "link")]
    public string Link { get; set; }

    [XmlElement(ElementName = "guid")]
    public string Description { get; set; }
}

现在,你应该能够使用解串器:

    var feed = new List<RssNews>();
    using (var webClient = new WebClient())
    {

        string result = webClient.DownloadString(url);
        using (var stringReader = new StringReader(result))
        {
            var serializer = new XmlSerializer(feed.GetType());
            feed = (List<RssNews>)serializer.Deserialize(stringReader);
        }
    }
    return feed;


文章来源: Read specific tag in a RSS feed