Yahoo Weather RSS

var temp:Number;
var weatherData:XML;
var yweather:Namespace;

var zipcode:String="11211";
var units:String = "f";  // "f" or "c" for Fahrenheit or Celsius

var yahooURL:String = "http://weather.yahooapis.com/forecastrss?p=" + zipcode + "&u=" + units;

var yahooWeather:URLLoader = new URLLoader();

yahooWeather.load(new URLRequest(yahooURL));
yahooWeather.addEventListener(Event.COMPLETE, onLoaded);

function onLoaded(evt:Event):void {

	weatherData=new XML(evt.target.data);
	yweather = weatherData.namespace("yweather");
	
    temp = weatherData.channel.item.yweather::condition.@temp;
	 
	trace(temp);
}

This snippet comes from a student question about how to get the temperature from yahoo weather.

You could use this snippet to get lots of additional information based on a zipcode… like latitude, longitude, humidity, wind chill etc… The trickiest part of this code is the Namespace stuff… which I find generally annoying… probably just because I’m not used to it.

You can read some detailed info about the content contained in the RSS file here.

Leave a Reply

Your email address will not be published. Required fields are marked *