我正在尝试从OpenWeatherMap-Webservice获取一些天气数据。数据中也是A ICONCODE,以可视化当前的天气条件。这是给定请求的XML反应:
请求:
http://api.openweathermap.org/data/2.5/forecast?q=linz&units=metric&type=accurate&mode=xml&APPID=ef67184baece136977466e7894b2a614
响应的一部分:(我稍微缩短了一点(
<weatherdata>
<location>...</location>
<credit/>
<meta>...</meta>
<sun rise="2017-05-30T03:07:24" set="2017-05-30T18:54:07"/>
<forecast>
<time from="2017-05-30T09:00:00" to="2017-05-30T12:00:00">
<symbol number="800" name="clear sky" var="02d"/>
<precipitation/>
<windDirection deg="223" code="SW" name="Southwest"/>
<windSpeed mps="2.31" name="Light breeze"/>
<temperature unit="celsius" value="29.59" min="27.52" max="29.59"/>
</time>
<time from="2017-05-30T12:00:00" to="2017-05-30T15:00:00">
<symbol number="800" name="clear sky" var="01d"/>
<precipitation/>
<windDirection deg="227.001" code="SW" name="Southwest"/>
</time>
我想检索所有预测周的所有图标。(并且在温度,风向等方面正常工作...
应该从Web服务中获取数据的功能的一部分:
for each (var item in xmlPage.forecast.time) {
var row = new Object();
var from_current_value=item.@from.substring(0,10);
if(from_current_value!=from_today_value){
row.WindDirection = item.windDirection.@name;
row.WindSpeed=item.windSpeed.@mps;
row.WeatherTemp=parseFloat(item.temperature.@value);
row.WeatherHumidity=parseFloat(item.humidity.@value);
row.From=item.@from;
row.To=item.@to;
row.Title=xmlPage.location.name+" "+xmlPage.location.country;
row.Precipitation=(item.precipitation.@type+" "+item.precipitation.@value)==" "?"No Precipitation":item.precipitation.@type;
var iconCode = item.symbol.@var;
row.IconLink = "http://openweathermap.org/img/w/"+ iconCode +".png";
如果我添加了行var iconcode = item.symbol。@var,我会得到以下语法错误:
syntax check failed: missing name after .@ (Line#33)
(line33是" var iconcode = item.symbol。@var" line(
我认为我会遇到错误,因为" var"是JavaScript中的一个保留字符串。但是,如何从xmlpage获得ICONCODE?有什么建议吗?
非常感谢您提前帮助我!此致,Theresa
根据其文档,您应该使用:
forecast.symbol.var
(在您的情况下
顺便说一句,使用JSON可能会更容易?