Solved

Reading attributes from RSS feed

Posted on 2008-10-06
5
1,319 Views
Last Modified: 2013-11-18
I'm trying to consume this RSS feed below. How do I get the min, max, etc attributes from the w:forecast node using the SyndicationFeed or some other method?

http://rss.weather.com.au/sa/parafield

I did plan on using the class provided here to keep the code succinct.
http://www.clariusconsulting.net/blogs/kzu/archive/2007/11/22/ForgetaboutwritingAtomorRSSXMLhandlingcodeeveragain.aspx

MSDN reference to SyndicationFeed
http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx
WebClient client = new WebClient();
client.Proxy = new WebProxy(proxyAddress, true);
 
Stream strm = client.OpenRead("http://rss.weather.com.au/sa/parafield");
XmlReader reader = XmlReader.Create(strm);
 
SyndicationFeedFormatter formatter = SyndicationFormatterFactory.CreateFeedFormatter(reader);
formatter.ReadFrom(reader);
SyndicationFeed feed = formatter.Feed;
 
Collection<string> timeToLive = feed.ElementExtensions.ReadElementExtensions<string>("ttl", "");
double ttl = 30;
if (timeToLive.Count > 0)
    ttl = Double.Parse(timeToLive[0]);

Open in new window

0
Comment
Question by:brene
  • 3
  • 2
5 Comments
 
LVL 13

Expert Comment

by:SameerJagdale
ID: 22657834
are you using .net 3.5?
0
 
LVL 4

Author Comment

by:brene
ID: 22664926
Yes, that is why I want to take advantage of the SyndicationFeed class but I'll use any method that works.
0
 
LVL 13

Expert Comment

by:SameerJagdale
ID: 22666401
0
 
LVL 4

Author Comment

by:brene
ID: 22666763
That link shows how to create a feed. I'm trying to get the data from an existing feed so that doesn't help.

What I want is the information contained in the w:forecast node eg.
<w:forecast day="Thursday" description="Early Fog Followed by Sun. Mild." min="8" max="21" icon="12" iconUri="http://www.weather.com.au/images/icons/12.gif" iconAlt="Early Fog Followed by Sun"/>
0
 
LVL 4

Accepted Solution

by:
brene earned 0 total points
ID: 22684156
Worked it out myself.
var items = from i in feed.Items
			select new
			{
				Title = i.Title.Text,
				Link = i.Links[0].Uri.ToString(),
				Ext = i.ElementExtensions
			};
foreach (var item in items)
{
	currWeather.Title = item.Title;
	currWeather.Link = item.Link;
	foreach (SyndicationElementExtension extension in item.Ext)
	{
		if (extension.OuterName == "current")
		{
			XmlReader xReader = extension.GetReader();
			if (xReader.HasAttributes)
			{
				currWeather.Temperature = Double.Parse(xReader["temperature"]);
				currWeather.DewPoint = Double.Parse(xReader["dewPoint"]);
				currWeather.Humidity = Double.Parse(xReader["humidity"]);
				currWeather.WindSpeed = Double.Parse(xReader["windSpeed"]);
				currWeather.WindGusts = Double.Parse(xReader["windGusts"]);
				currWeather.WindDirection = xReader["windDirection"];
				currWeather.Pressure = Double.Parse(xReader["pressure"]);
				currWeather.Rain = Double.Parse(xReader["rain"]);
			}
		}
	}
}

Open in new window

0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
ASP.net Have sliders change in order 2 24
ASP.net Show "please wait " message as page loads 2 45
ASP.NET MVC 2 32
Eliminate additional border 1 18
The Confluence of Individual Knowledge and the Collective Intelligence At this writing (summer 2013) the term API (http://dictionary.reference.com/browse/API?s=t) has made its way into the popular lexicon of the English language.  A few years ago, …
Styling your websites can become very complex. Here I'll show how SASS can help you better organize, maintain and reuse your CSS code.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question