private ForeCast GetForecastFromXML(XElement data) { var result = new ForeCast(); var xElement = data.Element("temperature"); if (xElement == null) { return(result); } var temperature = xElement.Attribute("value"); var element = data.Element("clouds"); if (element == null) { return(result); } var clouds = element.Attribute("value"); var o = data.Element("windSpeed"); if (o == null) { return(result); } var windSpeed = o.Attribute("mps"); var xElement1 = data.Element("humidity"); if (xElement1 == null) { return(result); } var humidity = xElement1.Attribute("value"); var precipitation = data.Element("precipitation"); var element1 = data.Element("pressure"); if (element1 != null) { var pressure = element1.Attribute("value"); result.Data.From = Convert.ToDateTime(data.Attribute("from").Value, CultureInfo.InvariantCulture); result.Data.To = Convert.ToDateTime(data.Attribute("to").Value, CultureInfo.InvariantCulture); result.Temperature = float.Parse(temperature.Value, CultureInfo.InvariantCulture.NumberFormat); result.CloudsValue = clouds.Value; result.WindSpeed = float.Parse(windSpeed.Value, CultureInfo.InvariantCulture.NumberFormat); result.Humidity = float.Parse(humidity.Value, CultureInfo.InvariantCulture.NumberFormat); result.Pressure = float.Parse(pressure.Value, CultureInfo.InvariantCulture.NumberFormat); } if (precipitation == null || !precipitation.Attributes().Any()) { return(result); } result.Precipitation.Value = float.Parse(precipitation.Attribute("value").Value, CultureInfo.InvariantCulture.NumberFormat); result.Precipitation.Type = precipitation.Attribute("type").Value; return(result); }
private ForcustItem GetCurrentWeatherfromXml(XmlNode data) { ForcustItem result = new ForcustItem(); XDocument doc = XDocument.Parse(data.OuterXml); if (doc.Root == null) { return(result); } //=================================/ Get Data from XmlDocument /============================================= var city = doc.Root.Elements().Where(x => x.Name == "city").Attributes("name"); var sTemperature = doc.Root.Elements().Where(x => x.Name == "temperature").Attributes("value").ElementAt(0).Value; var sHumidity = doc.Root.Elements().Where(x => x.Name == "humidity").Attributes("value").ElementAt(0).Value; var sPressure = doc.Root.Elements().Where(x => x.Name == "pressure").Attributes("value").ElementAt(0).Value; var sWindSpeed = doc.Root.Elements().Where(x => x.Name == "wind").Elements().Where(e => e.Name == "speed"); var sClouds = doc.Root.Elements().Where(x => x.Name == "clouds").Attributes("name").ElementAt(0).Value; var sPrecipitationType = doc.Root.Elements().Where(x => x.Name == "precipitation").Attributes("mode").ElementAt(0).Value; float precipitationValue = 0; if (doc.Root.Elements().Where(x => x.Name == "precipitation").Attributes("value").Any()) { var sPrecipitationValue = doc.Root.Elements().Where(x => x.Name == "precipitation").Attributes("value").ElementAt(0).Value; precipitationValue = float.Parse(sPrecipitationValue, CultureInfo.InvariantCulture.NumberFormat); } var sDate = doc.Root.Elements().Where(x => x.Name == "lastupdate").Attributes("value").ElementAt(0).Value; //=================================/ Convert Data /========================================================== var temperature = float.Parse(sTemperature, CultureInfo.InvariantCulture.NumberFormat); var humidity = float.Parse(sHumidity, CultureInfo.InvariantCulture.NumberFormat); var pressure = float.Parse(sPressure, CultureInfo.InvariantCulture.NumberFormat); var windSpeed = float.Parse(sWindSpeed.Attributes("value").ElementAt(0).Value, CultureInfo.InvariantCulture.NumberFormat); var clouds = sClouds; var precipitationType = sPrecipitationType; var date = Convert.ToDateTime(sDate); //=================================/ Add Data to ForcustItem object /====================================== result.CityName = city.ElementAt(0).Value; var temData = new Data() { From = date, To = date }; var temPrecipitation = new Precipitation() { Type = precipitationType, Value = precipitationValue }; var forecust = new ForeCast() { CloudsValue = clouds, Temperature = temperature, WindSpeed = windSpeed, Pressure = pressure, Humidity = humidity, Data = temData, Precipitation = temPrecipitation }; result.Forecast.Add(forecust); return(result); }