2012-04-20 78 views
0

只需一點點背景知識,我們的營銷部門一直在他們的標牌上使用靜態天氣圖像,並詢問是否可以實時更新某些內容。由於我是我們部門中唯一具有任何類型編程經驗的人,而且我是最好的新手,所以我被要求提出一個解決方案。過去我曾與其他一些小型項目合作過,我決定走這條路。除了擴展的預測數據之外,我已經按照我希望的方式工作。在下面的示例中,我使用For語句顯示要顯示每天的擴展預測xml數據的變量。但由於某種原因,它只是在延長預測的最後一天。使用經典ASP設置谷歌天氣預報

If (objXMLDOM.parseError.errorCode <> 0) Then 
Response.Write("<p>Error parsing XML: " & objXMLDOM.parseError.reason & "</p>") 
Else 
    For i = 0 to 3 
    Set objFuture = objXMLDOM.getElementsByTagName("forecast_conditions").Item(i) 'pull the XML node for each from one to three 
    For Each xmlNode In objFuture.childNodes 'loop through the dom tree 
     If (xmlNode.nodeName = "icon") Then 
      strIcon1 = "<img src=""http://www.google.com" & xmlNode.Attributes.getNamedItem("data").text & """ border=""0"">" & vbCrLf 
     End If 
     If (xmlNode.nodeName = "condition") Then 
      strCondition1 = xmlNode.Attributes.getNamedItem("data").text & vbCrLf 
     End If 
     If (xmlNode.nodeName = "low") Then 
      strLow = xmlNode.Attributes.getNamedItem("data").text & vbCrLf 
     End If 
     If (xmlNode.nodeName = "high") Then 
      strHigh = xmlNode.Attributes.getNamedItem("data").text & vbCrLf 
     End If  
     If (xmlNode.nodeName = "day_of_week") Then 
      strDay = xmlNode.Attributes.getNamedItem("data").text & vbCrLf 
     End If  
    Set objFuture = nothing  
    Next  
Next 
End if 

我再outputing 4天的天氣預報到我的主頁與下面的代碼:

<%For Each Item in objXMLDOM.getElementsByTagName("forecast_conditions") 
    Response.Write ("<td>" & strDay & "<br>" & strIcon1 & "<br>" & strCondition1 & "<br>" & "Low:&nbsp" & strLow & "&deg;F" & "<br>" & "High:&nbsp" & strHigh & "&deg;F" & "<br>" & "</td>") 
Next %> 

我一直在尋找這樣斷斷續續幾天的現在正好可以」我似乎找不到最後一天拉我每天失去的東西。如果有人有任何建議,我將不勝感激!

回答

1

您正在使用相同的一組變量來存儲每天的預測數據。因此,在for循環的每次迭代中,您都覆蓋前一天的信息。

的解決方案是動議insideyour第一for循環中的數據寫入到屏幕上的代碼,像這樣:

If (objXMLDOM.parseError.errorCode <> 0) Then 
    Response.Write("<p>Error parsing XML: " & objXMLDOM.parseError.reason & "</p>") 
Else 
    For i = 0 to 3 
     Set objFuture = objXMLDOM.getElementsByTagName("forecast_conditions").Item(i) 
     For Each xmlNode In objFuture.childNodes 

      ... 

     Next 

     ' Write to the page here 
     Response.Write ("<td>" & strDay & "<br>" & strIcon1 & "<br>" & strCondition1 & "<br>" & "Low:&nbsp" & strLow & "&deg;F" & "<br>" & "High:&nbsp" & strHigh & "&deg;F" & "<br>" & "</td>") 

    Next 
End if 
+0

喬恩謝謝!這解決了我的問題!我感謝您的幫助! – wyndhurst 2012-04-23 15:18:26