Я пишу приложение для Windows Phone 7, чтобы получать данные о погоде из API WeatherBug. У меня проблемы с данными прогноза на 7 дней. Я получаю данные в формате XML, но не могу разобрать данные XML.
Вот код, который вызывает веб-сервис и передает почтовый индекс:
public void GetForecastByZip(string zip)
{
string url = ("http://" + apiCode + ".api.wxbug.net/getForecastRSS.aspx?ACode=" + apiCode + "&zipCode=" + zip);
WebClient xmlClient = new WebClient();
xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XMLFileLoaded);
xmlClient.DownloadStringAsync(new Uri(url));
}
А вот код, где я получаю XML и пытаюсь что-то сделать ... что-то с ним.
void XMLFileLoaded(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
string xmlData = e.Result;
XmlReader reader = XmlReader.Create(xmlData);
XDocument doc = XDocument.Load(reader);
}
}
Формат XML выглядит примерно так:
<rss version="2.0" xmlns:georss="http://www.georss.org/georss">
<channel>
<title>Forecast for Williston Park, NY - USA</title>
<link>http://weather.weatherbug.com/NY/Williston Park-weather/local-forecast/7-day-forecast.html?ZCode=Z5546&Units=0</link>
<description>Weatherbug, the owner of the world's largest weather network is now providing an API to it's weather data in the
form of RSS. This will enable it's enthusiastic users to build their own applications.</description>
<language>en-us</language>
<lastBuildDate>Wed, 07 Dec 2011 20:56:00 GMT</lastBuildDate>
<ttl>60</ttl>
<aws:weather xmlns:aws="http://www.aws.com/aws">
<aws:api version="2.0" />
<aws:WebURL>http://weather.weatherbug.com/NY/Williston Park-weather/local-forecast/7-day-forecast.html?ZCode=Z5546&Units=0</aws:WebURL>
<aws:forecasts type="Detailed" date="12/7/2011 3:56:00 PM">
<aws:location>
<aws:city>Williston Park</aws:city>
<aws:state>NY</aws:state>
<aws:zip>11596</aws:zip>
<aws:zone>NY179</aws:zone>
</aws:location>
<aws:forecast>
<aws:title alttitle="WED">Wednesday</aws:title>
<aws:short-prediction>Rain</aws:short-prediction>
<aws:image isNight="1" icon="cond014.gif">http://deskwx.weatherbug.com/images/Forecast/icons/cond014.gif</aws:image>
<aws:description>Wednesday</aws:description>
<aws:prediction>Rain. Highs in the upper 50s. North winds 5 to 10 mph with gusts up to 20 mph. Chance of rain near 100 percent.</aws:prediction>
<aws:high units="&deg;F">59</aws:high>
<aws:low units="&def;F">31</aws:low>
</aws:forecast>
<aws:forecast>
<aws:title alttitle="THU">Thursday</aws:title>
<aws:short-prediction>Sunny</aws:short-prediction>
<aws:image isNight="0" icon="cond007.gif">http://deskwx.weatherbug.com/images/Forecast/icons/cond007.gif</aws:image>
<aws:description>Thursday</aws:description>
<aws:prediction>Sunny. Highs in the lower 40s. West winds 15 to 20 mph... Diminishing to 5 to 10 mph in the afternoon.</aws:prediction>
<aws:high units="&deg;F">43</aws:high>
<aws:low units="&deg;F">35</aws:low>
</aws:forecast>
и т. Д. И т. П.
Раздел AWS: прогноз встречается семь раз - по одному разу на каждый день в прогнозе. Каждая его итерация имеет заголовок, краткое предсказание, изображение, описание, предсказание, верхний и нижний элементы.
У меня есть сводная страница Windows Phone под названием Forecast.xaml с семью элементами. Я стремлюсь к такому показу на каждый день:
"Город: Уиллистон Парк"
«Дата: 7.12.2011»
"День: среда"
"Описание: Дождь"
«Прогноз: Дождь. Высоты в верхних 50-х. Северный ветер от 5 до 10 миль в час с порывами до 20 миль в час. Вероятность дождя около 100 процентов».
"Высокий: 59"
«Низкий: 31»
Ничего особенного. Но я просто не могу найти способ извлечь отдельные элементы из файла и присвоить их переменной.
Я прочитал учебник в Kotan Code, но у меня возникли проблемы с его применением в моем проекте. Любая помощь будет высоко ценится.