Asp classic 使用经典ASP设置Google天气扩展预测
只是一点背景,我们的营销部门一直在他们的标牌上使用静态天气图像,并询问是否有可能拉一些实时更新的东西。因为我是我们部门唯一一个有任何编程经验的人,而且我充其量只是个新手,所以我被要求想出一个解决方案。在过去,我曾与classic asp合作过几个其他的小项目,所以我决定走这条路。除扩展预测数据外,我的一切都按我所希望的方式运行。在下面的示例中,我有一些变量,我想用For语句显示这些变量,以提取每天的扩展预测xml数据。但出于某种原因,它只是在延长预测的最后一天才开始Asp classic 使用经典ASP设置Google天气扩展预测,asp-classic,Asp Classic,只是一点背景,我们的营销部门一直在他们的标牌上使用静态天气图像,并询问是否有可能拉一些实时更新的东西。因为我是我们部门唯一一个有任何编程经验的人,而且我充其量只是个新手,所以我被要求想出一个解决方案。在过去,我曾与classic asp合作过几个其他的小项目,所以我决定走这条路。除扩展预测数据外,我的一切都按我所希望的方式运行。在下面的示例中,我有一些变量,我想用For语句显示这些变量,以提取每天的扩展预测xml数据。但出于某种原因,它只是在延长预测的最后一天才开始 If (objXMLDOM.
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
If(objXMLDOM.parseError.errorCode 0)则
Response.Write(“解析XML时出错:”&objXMLDOM.parseError.reason&“”)
其他的
对于i=0到3
设置objFuture=objXMLDOM.getElementsByTagName(“预测_条件”)。项(i)“将每个项的XML节点从1拉到3
对于通过dom树的objFuture.childNodes循环中的每个xmlNode
如果(xmlNode.nodeName=“icon”),则
strIcon1=”“&vbCrLf
如果结束
如果(xmlNode.nodeName=“条件”),则
strCondition1=xmlNode.Attributes.getNamedItem(“数据”).text&vbCrLf
如果结束
如果是(xmlNode.nodeName=“低”),则
strLow=xmlNode.Attributes.getNamedItem(“数据”).text&vbCrLf
如果结束
如果是(xmlNode.nodeName=“高”),则
strHigh=xmlNode.Attributes.getNamedItem(“数据”).text&vbCrLf
如果结束
如果(xmlNode.nodeName=“一周中的第二天”),则
strDay=xmlNode.Attributes.getNamedItem(“数据”).text&vbCrLf
如果结束
设置objFuture=nothing
下一个
下一个
如果结束
然后,我用以下代码将4天预测输出到我的主页:
<%For Each Item in objXMLDOM.getElementsByTagName("forecast_conditions")
Response.Write ("<td>" & strDay & "<br>" & strIcon1 & "<br>" & strCondition1 & "<br>" & "Low: " & strLow & "°F" & "<br>" & "High: " & strHigh & "°F" & "<br>" & "</td>")
Next %>
我已经断断续续地看了好几天了,但似乎找不到我每天都要做的事情,而不仅仅是最后一件。如果有人有任何建议,我将不胜感激 您正在使用同一组变量来存储每天的预测数据。因此,在
for
循环的每次迭代中,您都会覆盖前一天的信息
解决方案是将写入数据的代码移动到第一个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: " & strLow & "°F" & "<br>" & "High: " & strHigh & "°F" & "<br>" & "</td>")
Next
End if
If(objXMLDOM.parseError.errorCode 0)则
Response.Write(“解析XML时出错:”&objXMLDOM.parseError.reason&“”)
其他的
对于i=0到3
设置objFuture=objXMLDOM.getElementsByTagName(“预测条件”)。项(i)
对于objFuture.childNodes中的每个xmlNode
...
下一个
“写到这里
回答。写(“&strDay&”
“&strIcon1&”
“&strcon1&”
“&strcon1&”&strcon条件1&“
”和“低:&strLow&°;F”&
”和“高:&strHigh&°;F”&
”)
下一个
如果结束
谢谢Jon!这解决了我的问题!我感谢你的帮助!