0

ちょっとした背景として、私たちのマーケティング部門はサイネージに静的な天気画像を使用しており、リアルタイムで更新されるものを引き出すことが可能かどうか尋ねました。私たちの部門でプログラミングの経験があるのは私だけであり、せいぜい初心者であるため、解決策を考え出すように求められました。私は、過去に行った他のいくつかの小さなプロジェクトでクラシック ASP を使用したことがあるので、そのルートに進むことにしました。拡張された予測データを除いて、すべてが思いどおりに機能しています。以下のサンプルには、For ステートメントで表示したい変数があり、毎日の拡張された予測 xml データを取得します。しかし、何らかの理由で、延長された予測の最終日のみを引っ張っています。

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

次に、次のコードを使用して、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 %>

私はこれを数日間断続的に見てきましたが、最後のものだけでなく、毎日引っ張るのに欠けているものを見つけることができないようです. 誰か提案があれば、私はそれをいただければ幸いです!

4

1 に答える 1

1

同じ変数セットを使用して、毎日の予測データを保存しています。したがって、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:&nbsp" & strLow & "&deg;F" & "<br>" & "High:&nbsp" & strHigh & "&deg;F" & "<br>" & "</td>")

    Next
End if
于 2012-04-20T15:51:02.327 に答える