如何升级到新的雅虎天气API

本文关键字:API 雅虎 何升级 | 更新日期: 2023-09-27 17:58:30

一段时间以来,我一直在使用Yahoo Weather Api获取当天的温度和预报,以便在C#中的.Net应用程序中进行统计。显然,雅虎更新了他们的api,应用程序无法获取数据。

我正在使用这样的xml文档来获取数据

    XmlDocument doc = new XmlDocument();
    doc.Load("http://xml.yahooapis.com/forecastrss?w=" + WOEID + "&u=c");
    XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable);
    ns.AddNamespace("yweather", "http://xml.weather.yahoo.com/ns/rss/1.0");
    XmlNode nod = doc.SelectSingleNode("/rss/channel/link", ns);
    link = nod.InnerText;
    ....more nodes selected....

像这样,我得到xml节点和值,将它们存储在数据库中。

为了使应用程序能够使用新的api,我需要做哪些更改?

如何升级到新的雅虎天气API

首先,我们需要更改我们要求提供预测的url

 doc.Load("http://xml.yahooapis.com/forecastrss?w=" + WOEID + "&u=c");

      query="select%20*%20from%20weather.forecast%20where%20woeid%20%3D%20"+ WOEID 
           + "%20and%20u=%27c%27";
      doc.Load("https://query.yahooapis.com/v1/public/yql?q="+query+"&format=xml
                 &env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys");

然后我们需要更改节点路径,因为新的xml文档与旧的略有不同。

的变化

XmlNode nod = doc.SelectSingleNode("/rss/channel/link", ns);

XmlNode nod = doc.SelectSingleNode("/query/results/channel/link", ns);

一切都应该很好。