JavaScript: Невозможно получить значение @var из XML-файла, поскольку var зарезервировано?

Я пытаюсь получить некоторые данные о погоде от openweathermap-webservice. Среди данных есть также 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>

Я хочу получить все коды значков всех дней прогноза. (И он отлично работает с температурой, направлением ветра и т. Д...

часть функции, которая должна получать данные из веб-сервиса:

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")

Я думаю, что получаю ошибку, потому что "var" является зарезервированной строкой в ​​JavaScript. Но как тогда получить iconCode из xmlPage? Какие-либо предложения?

Заранее большое спасибо за помощь! С наилучшими пожеланиями, Тереза

1 ответ

Согласно их документации, вы должны использовать:

forecast.symbol.var

(в вашем случае item.symbol.var)

Помимо использования JSON может быть проще?

Другие вопросы по тегам