因此,我不想问这个问题,但是在搜索和尝试编码的最后10个小时中,却什么都没发现。
我有一个附有SQL数据库的Visual Studio项目。我需要将数据从Google Weather Service API提取到sql表中。
Webservice调用是对此站点的google api调用
以及其他几个站点,例如AccuWeather和NOAA,以显示这三个站点之间的差异。该项目的目标是查看数据是否相对相同,或者是否使用了不同的气象站,如果这样做,则会导致向用户报告天气的方式产生重大差异。
我所缺少的是该对象的解释器,它可以让我将temp,湿度等信息放入sql表中
有人做过此事并且有一些提示或参考吗?
这是使用Linq to XML解析响应的方法
实时示例:http : //balexandre.com/stackoverflow/7789623/
该链接还包括源代码,但是使用Linq到XML的解析非常容易,有趣并且非常简单:
private GoogleWheatherInfo parseGoogleWeatherResponse(string url) { GoogleWheatherInfo gw = new GoogleWheatherInfo(); // get the XML XDocument doc = XDocument.Load(url); // parse data gw.ForecastInformation = (from x in doc.Descendants("forecast_information") select new GWForecastInfo { City = x.Descendants("city").First().Attribute("data").Value, PostalCode = x.Descendants("postal_code").First().Attribute("data").Value, Latitude = long.Parse(string.IsNullOrEmpty(x.Descendants("latitude_e6").First().Attribute("data").Value) ? "0" : x.Descendants("latitude_e6").First().Attribute("data").Value), Longitude = long.Parse(string.IsNullOrEmpty(x.Descendants("longitude_e6").First().Attribute("data").Value) ? "0" : x.Descendants("longitude_e6").First().Attribute("data").Value), ForecastDate = DateTime.ParseExact(x.Descendants("forecast_date").First().Attribute("data").Value, "yyyy-MM-dd", CultureInfo.InvariantCulture), CurrentDate = DateTime.ParseExact(x.Descendants("current_date_time").First().Attribute("data").Value, "yyyy-MM-dd HH:mm:ss K", CultureInfo.InvariantCulture), UnitSystem = x.Descendants("unit_system").First().Attribute("data").Value }).Single(); gw.CurrentCondition = (from x in doc.Descendants("current_conditions") select new GWCurrentCondition { Condition = x.Descendants("condition").First().Attribute("data").Value, TemperatureC = long.Parse(x.Descendants("temp_c").First().Attribute("data").Value), TemperatureF = long.Parse(x.Descendants("temp_f").First().Attribute("data").Value), Humidity = x.Descendants("humidity").First().Attribute("data").Value, Image = x.Descendants("icon").First().Attribute("data").Value, Wind = x.Descendants("wind_condition").First().Attribute("data").Value }).Single(); gw.ForecastConditions = (from x in doc.Descendants("forecast_conditions") select new GWForecastCondition { DayOfWeek = x.Descendants("day_of_week").First().Attribute("data").Value, Low = double.Parse(x.Descendants("low").First().Attribute("data").Value), High = double.Parse(x.Descendants("high").First().Attribute("data").Value), Image = x.Descendants("icon").First().Attribute("data").Value, Condition = x.Descendants("condition").First().Attribute("data").Value, }).ToList(); return gw; }
我希望这可以使您了解解析任何XML文档的难易程度。