Reading attributes from RSS feed

Posted on 2008-10-06
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?

I did plan on using the class provided here to keep the code succinct.

MSDN reference to SyndicationFeed
WebClient client = new WebClient();

client.Proxy = new WebProxy(proxyAddress, true);

Stream strm = client.OpenRead("");

XmlReader reader = XmlReader.Create(strm);

SyndicationFeedFormatter formatter = SyndicationFormatterFactory.CreateFeedFormatter(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

Question by:brene
  • 3
  • 2
LVL 13

Expert Comment

ID: 22657834
are you using .net 3.5?

Author Comment

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

Expert Comment

ID: 22666401

Author Comment

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="" iconAlt="Early Fog Followed by Sun"/>

Accepted Solution

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


Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Shoutout to Emily Plummer ( for giving me this article! She did most of it, I just finished it up and posted it for her :)    Introduction In a previous article (http://www.experts-exchang…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

920 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now