XML Pages are perfect, as they are very easy to parse, like the following:
In code it would be as simple as looking for <temp_f> and reading the rest of the line, then removing the </temp_f> from the end of the line. (This is done as the temperature can be 1 to 3 digits in length).
<observation_time>Last Updated on May 7, 10:51 pm CDT</observation_time>
<observation_time_rfc822>Wed, 7 May 2008 22:51:00 -0500 CDT</observation_time_rfc822>
<temperature_string>49 F (9 C)</temperature_string>
<wind_string>From the Northeast at 15 Gusting to 23 MPH</wind_string>
<pressure_string>29.81" (1009.4 mb)</pressure_string>
<dewpoint_string>40 F (4 C)</dewpoint_string>
The problem with this site is quite clear though, this is the URL to that page:
Notice it uses a 4 digit airport code in the URL, not a zipcode or town name. A list of airport codes can be found here, but leave still another major problem. If you live in Chicago, in the example above, it will find the airport code, then can add the code for Chicago to the URL to get the info. The problem being if you live in one of the hundreds of suburbs of Chicago, then nothing will be found by the name of that suburb.
The bottom line being, the site needs to be able to pass a City and State to it, or be able to accept a zipcode. In the case of the zipcode, the Zips.dat file can return a town / city name, or if you look up a city / town in the zips.dat, you can get the city name as well.
The major problem with all this is it is strictly North America based, and will not work anywhere else.