jrthor2
05-27-2004, 08:09 AM
I have the following php script:
<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://ejse.com/WeatherService/Service.asmx/GetNineDayForecastInfo?zipCode=$zipCode");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$weather_input=curl_exec ($ch);
curl_close ($ch);
$weather_data = array();
$xml_current_tag_state = '';
$day_count = 0;
global $weather_data, $xml_current_tag_state;
function startElementHandler($parser,$element_name,$element_attribs)
{
global $xml_current_tag_state;
$xml_current_tag_state = $element_name;
}
function endElementHandler($parser,$element_name)
{
global $day_count, $xml_current_tag_state;
if ($element_name == "DAY1" OR $element_name == "DAY2" OR $element_name == "DAY3" OR $element_name == "DAY4" OR $element_name == "DAY5" OR $element_name == "DAY6" OR $element_name == "DAY7" OR $element_name == "DAY8" OR $element_name == "DAY9")
{
$day_count++;
}
$xml_current_tag_state = "";
}
function weatherDataHandler($parser, $data)
{
global $weather_data, $xml_current_tag_state, $day_count;
if($xml_current_tag_state == "")
return;
switch ($xml_current_tag_state)
{
case "DAY":
$weather_data[$day_count]["Day"] = $data;
break;
case "DATE":
$weather_data[$day_count]["Date"] = $data;
break;
case "ICONINDEX":
$weather_data[$day_count]["IconIndex"] = $data;
break;
case "FORECAST":
$weather_data[$day_count]["Forecast"] = $data;
break;
case "HIGH":
$weather_data[$day_count]["High"] = $data;
break;
case "LOW":
$weather_data[$day_count]["Low"] = $data;
break;
case "PRECIPCHANCE":
$weather_data[$day_count]["PrecipChance"] = $data;
break;
default:
$xml_current_tag_state = "DAY1";
break;
}
}
if (!($xml_parser = xml_parser_create()) )
die ("Couldn't create XML parser!");
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "weatherDataHandler");
xml_parse($xml_parser, $weather_input);
xml_parser_free($xml_parser);
echo "<h4>Weather for: $zipCode</h4>";
for ($i=0;$i <$day_count; ++$i)
{
echo "<p>";
echo "<img src=\"weather_icons/".$weather_data[$i]["IconIndex"].".gif\" height=\"52\" width=\"52\" alt=\"".$weather_data[$i]["Forecast"]."\"><br>";
//echo "Day = ".$weather_data[$i]["Day"]."<br>";
echo "Date = ".$weather_data[$i]["Date"]."<br>";
echo "Forecast = ".$weather_data[$i]["Forecast"]."<br>";
echo "High = ".str_replace("°","°",$weather_data[$i]["High"])."<br>";
echo "Low = ".str_replace("°","°",$weather_data[$i]["Low"])."<br>";
echo "PrecipChance = ".$weather_data[$i]["PrecipChance"]."<br>";
echo "</p>";
}
?>
below is my attempt to convert this to asp. I get this error:
Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment: 'startElementHandler'
<%
Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.setProperty "ServerHTTPRequest", true
ReturnValue = xmlDoc.Load ("http://ejse.com/WeatherService/Service.asmx/GetNineDayForecastInfo?zipCode=17036")
If ReturnValue = False Then
Set xmlDocError = xmlDoc.ParseError
Response.Write "  " & xmlDocError.ErrorCode & " - " & xmlDocError.Reason & " URL=" & xmlDocError.URL & "<br>"
Set xmlDocError = Nothing
Else
weather_data =Array ( )
xml_current_tag_state = ""
day_count = 0
Dim weather_data, xml_current_tag_state
Function startElementHandler ( element_name,element_attribs )
'Dim element_name, element_attribs
xml_current_tag_state = element_name
End Function
Function endElementHandler ( element_name )
'Dim element_name
If element_name = "DAY1" OR element_name = "DAY2" OR element_name = "DAY3" OR element_name = "DAY4" OR element_name = "DAY5" OR element_name = "DAY6" OR element_name = "DAY7" OR element_name = "DAY8" OR element_name = "DAY9" then
day_count = day_count + 1
End If
xml_current_tag_state = ""
End Function
Function weatherDataHandler ( data )
'Dim parser, data, weather_data()
If xml_current_tag_state = "" then
End If
select case (xml_current_tag_state)
CASE "DAY"
weather_data(day_count)("Day") = data
break
case "DATE"
weather_data(day_count)("Date") = data
break
case "ICONINDEX"
weather_data(day_count)("IconIndex") = data
break
case "FORECAST"
weather_data(day_count)("Forecast") = data
break
case "HIGH"
weather_data(day_count)("High") = data
break
case "LOW"
weather_data(day_count)("Low") = data
break
case "PRECIPCHANCE"
weather_data(day_count)("PrecipChance") = data
break
default
xml_current_tag_state = "DAY1"
break
End select
End Function
'If xml_parser <> xml_parser_create() then
')
'die ("Couldn't create XML parser!")
'End If
Call (startElementHandler)
Call (endElementHandler)
Call (weatherDataHandler)
'xml_parse(xml_parser, weather_input)
'xml_parser_free(xml_parser)
Response.Write "<h4>Weather for: " & zipCode & "</h4>"
i=0
response.write day_count
Do While i < day_count
Response.Write "<p>"
Response.Write "<img src=""weather_icons/" & weather_data(i)("IconIndex") & ".gif"" height=""52"" width=""52"" alt=""" & weather_data(i)("Forecast") & """><br>"
' echo "Day = ".gv_weather_data($i)["Day"]."<br>";
Response.Write "Date = " & weather_data(i)("Date") & "<br>"
Response.Write "Forecast = " & weather_data(i)("Forecast") & "<br>"
Response.Write "High = " & Replace ( weather_data(i)("High") , "°", "°" ) & "<br>"
Response.Write "Low = " & Replace ( weather_data(i)("Low") , "°", "°" ) & "<br>"
Response.Write "PrecipChance = " & weather_data(i)("PrecipChance") & "<br>"
Response.Write "</p>"
i = i + 1
Loop
End If
%>
<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://ejse.com/WeatherService/Service.asmx/GetNineDayForecastInfo?zipCode=$zipCode");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$weather_input=curl_exec ($ch);
curl_close ($ch);
$weather_data = array();
$xml_current_tag_state = '';
$day_count = 0;
global $weather_data, $xml_current_tag_state;
function startElementHandler($parser,$element_name,$element_attribs)
{
global $xml_current_tag_state;
$xml_current_tag_state = $element_name;
}
function endElementHandler($parser,$element_name)
{
global $day_count, $xml_current_tag_state;
if ($element_name == "DAY1" OR $element_name == "DAY2" OR $element_name == "DAY3" OR $element_name == "DAY4" OR $element_name == "DAY5" OR $element_name == "DAY6" OR $element_name == "DAY7" OR $element_name == "DAY8" OR $element_name == "DAY9")
{
$day_count++;
}
$xml_current_tag_state = "";
}
function weatherDataHandler($parser, $data)
{
global $weather_data, $xml_current_tag_state, $day_count;
if($xml_current_tag_state == "")
return;
switch ($xml_current_tag_state)
{
case "DAY":
$weather_data[$day_count]["Day"] = $data;
break;
case "DATE":
$weather_data[$day_count]["Date"] = $data;
break;
case "ICONINDEX":
$weather_data[$day_count]["IconIndex"] = $data;
break;
case "FORECAST":
$weather_data[$day_count]["Forecast"] = $data;
break;
case "HIGH":
$weather_data[$day_count]["High"] = $data;
break;
case "LOW":
$weather_data[$day_count]["Low"] = $data;
break;
case "PRECIPCHANCE":
$weather_data[$day_count]["PrecipChance"] = $data;
break;
default:
$xml_current_tag_state = "DAY1";
break;
}
}
if (!($xml_parser = xml_parser_create()) )
die ("Couldn't create XML parser!");
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "weatherDataHandler");
xml_parse($xml_parser, $weather_input);
xml_parser_free($xml_parser);
echo "<h4>Weather for: $zipCode</h4>";
for ($i=0;$i <$day_count; ++$i)
{
echo "<p>";
echo "<img src=\"weather_icons/".$weather_data[$i]["IconIndex"].".gif\" height=\"52\" width=\"52\" alt=\"".$weather_data[$i]["Forecast"]."\"><br>";
//echo "Day = ".$weather_data[$i]["Day"]."<br>";
echo "Date = ".$weather_data[$i]["Date"]."<br>";
echo "Forecast = ".$weather_data[$i]["Forecast"]."<br>";
echo "High = ".str_replace("°","°",$weather_data[$i]["High"])."<br>";
echo "Low = ".str_replace("°","°",$weather_data[$i]["Low"])."<br>";
echo "PrecipChance = ".$weather_data[$i]["PrecipChance"]."<br>";
echo "</p>";
}
?>
below is my attempt to convert this to asp. I get this error:
Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment: 'startElementHandler'
<%
Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.setProperty "ServerHTTPRequest", true
ReturnValue = xmlDoc.Load ("http://ejse.com/WeatherService/Service.asmx/GetNineDayForecastInfo?zipCode=17036")
If ReturnValue = False Then
Set xmlDocError = xmlDoc.ParseError
Response.Write "  " & xmlDocError.ErrorCode & " - " & xmlDocError.Reason & " URL=" & xmlDocError.URL & "<br>"
Set xmlDocError = Nothing
Else
weather_data =Array ( )
xml_current_tag_state = ""
day_count = 0
Dim weather_data, xml_current_tag_state
Function startElementHandler ( element_name,element_attribs )
'Dim element_name, element_attribs
xml_current_tag_state = element_name
End Function
Function endElementHandler ( element_name )
'Dim element_name
If element_name = "DAY1" OR element_name = "DAY2" OR element_name = "DAY3" OR element_name = "DAY4" OR element_name = "DAY5" OR element_name = "DAY6" OR element_name = "DAY7" OR element_name = "DAY8" OR element_name = "DAY9" then
day_count = day_count + 1
End If
xml_current_tag_state = ""
End Function
Function weatherDataHandler ( data )
'Dim parser, data, weather_data()
If xml_current_tag_state = "" then
End If
select case (xml_current_tag_state)
CASE "DAY"
weather_data(day_count)("Day") = data
break
case "DATE"
weather_data(day_count)("Date") = data
break
case "ICONINDEX"
weather_data(day_count)("IconIndex") = data
break
case "FORECAST"
weather_data(day_count)("Forecast") = data
break
case "HIGH"
weather_data(day_count)("High") = data
break
case "LOW"
weather_data(day_count)("Low") = data
break
case "PRECIPCHANCE"
weather_data(day_count)("PrecipChance") = data
break
default
xml_current_tag_state = "DAY1"
break
End select
End Function
'If xml_parser <> xml_parser_create() then
')
'die ("Couldn't create XML parser!")
'End If
Call (startElementHandler)
Call (endElementHandler)
Call (weatherDataHandler)
'xml_parse(xml_parser, weather_input)
'xml_parser_free(xml_parser)
Response.Write "<h4>Weather for: " & zipCode & "</h4>"
i=0
response.write day_count
Do While i < day_count
Response.Write "<p>"
Response.Write "<img src=""weather_icons/" & weather_data(i)("IconIndex") & ".gif"" height=""52"" width=""52"" alt=""" & weather_data(i)("Forecast") & """><br>"
' echo "Day = ".gv_weather_data($i)["Day"]."<br>";
Response.Write "Date = " & weather_data(i)("Date") & "<br>"
Response.Write "Forecast = " & weather_data(i)("Forecast") & "<br>"
Response.Write "High = " & Replace ( weather_data(i)("High") , "°", "°" ) & "<br>"
Response.Write "Low = " & Replace ( weather_data(i)("Low") , "°", "°" ) & "<br>"
Response.Write "PrecipChance = " & weather_data(i)("PrecipChance") & "<br>"
Response.Write "</p>"
i = i + 1
Loop
End If
%>