65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 VB.NET 和 Yahoo RSS 获取天气

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.05/5 (12投票s)

2008年11月7日

CPOL

2分钟阅读

viewsIcon

67328

downloadIcon

4276

使用 VB.NET 和 Yahoo RSS 获取天气

引言

每次我想在我的网站上使用天气预报时,都觉得太复杂了。我找到的每种方法都有问题——有些天气预报 Web 服务无法正常工作。最终我注意到 Yahoo! 提供了天气预报的 RSS 源。我决定编写一个程序来在我的网站中使用它,并为此创建了一个类!我希望它对那些希望在他们的程序中拥有天气预报的人有所帮助。

Yahoo! 天气 RSS 源

Yahoo! 天气 RSS 源使您可以获取您所在位置的最新天气信息。您可以将此源保存在 My Yahoo! 或您最喜欢的 RSS 阅读器中。您还可以将 RSS 数据合并到您自己的网站或客户端应用程序中。Yahoo! 天气 RSS 源是一个动态生成的源,基于邮政编码或位置 ID。

RSS 请求

Yahoo! 天气 RSS 源请求遵循简单的 HTTP GET 语法:从基本 URL 开始,然后在问号 (?) 之后添加参数和值。多个参数用与号 (&) 分隔。天气 RSS 有两个参数

  • p 用于位置
  • u 用于温度单位(华氏度或摄氏度)

RSS 响应

Yahoo! 天气 RSS 源是一个符合 RSS 2.0 规范的 XML 文档。RSS 是一个 XML 文档,包含:一个表示源的单个 channel 元素,几个包含关于源本身的元数据元素,以及一个或多个描述源内单个项目的 item 元素。您可以在 Yahoo 开发者页面 这里 找到有关这些元素的全部信息。由于它以 XML 文档的形式表示,我们可以使用 .NET 中的 XML 序列化将其转换为类。

了解 .NET Framework 中的 XML 序列化

XML 序列化使您可以将公共语言运行时对象转换为 XML 文档或流,反之亦然。XML 序列化使得将 XML 文档转换为所有编程语言都可以轻松处理的更有意义的格式成为可能。您不需要了解太多关于 XML 序列化才能使用此代码,但它可以帮助您自行更改或自定义它。

Using the Code

使用此代码就像创建它的实例,然后将其所需的参数(Yahoo! 天气 RSS 参数)发送到其构造函数一样简单。第一个参数是美国邮政编码或位置 ID。第二个参数是温度单位。发送 "f" 表示华氏度,或 "c" 表示摄氏度,然后您就可以使用它了!就像这样

            
Dim t As New clsWeather("JoXX" & Format(Me.ComboBox1.SelectedIndex + 1, "0000"), "c")

lblHigh.Text = t.high & "ّ"
lblCity.Text = ComboBox1.Items.Item(Me.ComboBox1.SelectedIndex) & " Weather "
lblLow.Text = t.Low & "ّ"
lblDay.Text = t.day
lblCase.Text = t.Case
lblSunrise.Text = t.Sunrise
lblSunset.Text = t.Sunset
lblWInd.Text = CInt(Val(t.Wind)) & " kph"

imgWeather.Image = Image.FromFile(t.GetImage)
© . All rights reserved.