2017-05-30 5 views
1

J'essaie d'obtenir des données météorologiques du service web openweathermap. Parmi les données se trouve l'iconCode afin de visualiser les conditions météo actuelles. Voici le xml-réponse de la requête donnée:JavaScript: Impossible de récupérer la valeur @var du fichier XML car var est réservé?

demande:

http://api.openweathermap.org/data/2.5/forecast?q=linz&units=metric&type=accurate&mode=xml&APPID=ef67184baece136977466e7894b2a614 

une partie de la réponse: (i ai raccourci un peu)

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

Je veux récupérer tous les iconCodes de tous les jours-prévisions. (Et cela fonctionne très bien avec la température, la direction du vent, etc ...

une partie de la fonction qui devrait obtenir les données du webservice:

for each (var item in xmlPage.forecast.time) { 
var row = new Object(); 
var [email protected](0,10); 

if(from_current_value!=from_today_value){ 
    row.WindDirection = [email protected]; 
    [email protected]mps; 
    row.WeatherTemp=parseFloat([email protected]); 
    row.WeatherHumidity=parseFloat([email protected]); 
    [email protected]; 
    [email protected]; 
    row.Title=xmlPage.location.name+" "+xmlPage.location.country; 
    row.Precipitation=([email protected]+" "[email protected])==" "?"No Precipitation":[email protected]; 

    var iconCode = [email protected]; 
    row.IconLink = "http://openweathermap.org/img/w/"+ iconCode +".png"; 

Si j'ai ajouté la ligne var = iconCode . item.symbol @ var, je reçois l'erreur de syntaxe suivante: ("var = iconCode item.symbol @ var" line33 est la ligne)

syntax check failed: missing name after [email protected] (Line#33) 

Je pense que je reçois l'erreur parce que " var "est une chaîne réservée en JavaScript. Mais comment puis-je obtenir l'iconCode de la xmlPage alors? Aucune suggestion?

Merci beaucoup d'avance de m'avoir aidé! Meilleures salutations, Theresa

+1

Pourriez-vous s'il vous plaît [essayer 'item.symbol ['@ var']' à la place] (https://stackoverflow.com/questions/4968406/javascript-property-access-dot-notation-vs-brackets)? – Pyromonk

+0

Eh bien, ne devriez-vous pas pouvoir utiliser le .getAttribute() comme nous le faisons sur tous les objets DOM? https://www.w3schools.com/xml/met_element_getattribute.asp –

Répondre

1

Selon leur documentation, vous devez utiliser:

forecast.symbol.var

(dans votre cas item.symbol.var)

En plus, en utilisant JSON pourrait être plus facile?