2012-04-20 79 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