hi,
im trying to parser xml from mlb scoreboard here is the parser code:
<?php
if (!($fp=@fopen("scoreboard.xml", "r"))) die ("Couldn't open XML.");
$usercount=0;
$userdata=array();
$state='';
function startElementHandler ($parser,$name,$attrib){
global $usercount;
global $userdata;
global $state;
switch ($name) {
case $name=="game" : {
$userdata[$usercount]["gid"] = $attrib["id"];
$userdata[$usercount]["gleague"] = $attrib["league"];
$userdata[$usercount]["gstatus"] = $attrib["status"];
$userdata[$usercount]["gstart_time"] = $attrib["start_time"];
$userdata[$usercount]["ghome_code"] = $attrib["home_code"];
break;
}
case $name=="team" : {
$userdata[$usercount]["tname"] = $attrib["name"];
$userdata[$usercount]["tcode"] = $attrib["code"];
break;
}
default : {$state=$name;break;}
}
}
function endElementHandler ($parser,$name){
global $usercount;
global $userdata;
global $state;
$state='';
if($name=="go_game") {$usercount++;}
}
function characterDataHandler ($parser, $data) {
global $usercount;
global $userdata;
global $state;
if (!$state) {return;}
/* if ($state=="COMPANY") { $userdata[$usercount]["bcompany"] = $data;}
if ($state=="GENDER") { $userdata[$usercount]["gender"] = $data;}
if ($state=="BDAY") { $userdata[$usercount]["bday"] = $data;}
if ($state=="ANNI") { $userdata[$usercount]["anni"] = $data;}
if ($state=="SPOUSE") { $userdata[$usercount]["spouse"] = $data;}
if ($state=="CHILDREN") { $userdata[$usercount]["children"] = $data;}
if ($state=="EMAILONE") { $userdata[$usercount]["email1"] = $data;}
if ($state=="EMAILTWO") { $userdata[$usercount]["email2"] = $data;}
if ($state=="EMAILTHREE") { $userdata[$usercount]["email3"] = $data;}
if ($state=="EMAILFOUR") { $userdata[$usercount]["email4"] = $data;}
if ($state=="COMMENT") {$userdata[$usercount]["comment"] = $data;} */
if ($state=="delay_reason") {$userdata[$usercount]["delay"] = $data;}
}
if (!($xml_parser = xml_parser_create())) die("Couldn't create parser.");
xml_set_element_handler( $xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler( $xml_parser, "characterDataHandler");
while( $data = fread($fp, 4096)){
if(!xml_parse($xml_parser, $data, feof($fp))) {
break;}}
xml_parser_free($xml_parser);
?>
<html>
<head><title>CodeHelp - Testing PHP XML parser</title>
</head>
<body>
<?php
for ($i=0;$i<$usercount; $i++)
{
echo "Game ID: ".$userdata[$i]["gid"]." ".ucfirst($userdata[$i]["gleague"])." ". ucfirst($userdata[$i]["gstatus"]);
if ($userdata[$i]["gstart_time"]) {echo "Time: ".$userdata[$i]["gstart_time"]."<br>";}
if ($userdata[$i]["ghome_code"]) {echo "HomeCode: ".$userdata[$i]["ghome_code"]."<br>";}
/*
if ($userdata[$i]["hstreet"]) {
echo "Home Address: ".$userdata[$i]["hstreet"].", ";
echo $userdata[$i]["hcity"].", ".$userdata[$i]["hcounty"].", ". $userdata[$i]["hpostal"].
". ".$userdata[$i]["hcountry"]."<br>";
}
if ($userdata[$i]["hphone"]) {echo "Home Phone ".$userdata[$i]["hphone"]."<br>";}
if ($userdata[$i]["hfax"]) {echo "Home Fax ".$userdata[$i]["hfax"]."<br>";}
if ($userdata[$i]["hmobile"]) {echo "Personal Mobile ".$userdata[$i]["hmobile"]."<br>";}
if ($userdata[$i]["hweb"]) {
echo "Personal site: <a href=\"".$userdata[$i]["hweb"]."\">".$userdata[$i]["hweb"]."</a><br>";
}
if ($userdata[$i]["bstreet"]) {
echo "Business Address: ".$userdata[$i]["bstreet"];
echo ", ".$userdata[$i]["bcity"].". ".$userdata[$i]["bcounty"].", ". $userdata[$i]["bpostal"].
". ".$userdata[$i]["bcountry"]."<br>";
}
if ($userdata[$i]["bphone"]) {echo "Work Phone ".$userdata[$i]["bphone"]."<br>";}
if ($userdata[$i]["bfax"]) {echo "Work Fax ".$userdata[$i]["bfax"]."<br>";}
if ($userdata[$i]["bmobile"]) {echo "Business Mobile ".$userdata[$i]["bmobile"]."<br>";}
if ($userdata[$i]["bcompany"]) {echo "Company: ".$userdata[$i]["bcompany"]."<br>";}
if ($userdata[$i]["gender"]) {echo "Gender: ".$userdata[$i]["gender"]."<br>";}
if ($userdata[$i]["children"]) {echo "Children: ".$userdata[$i]["children"]."<br>";}
if ($userdata[$i]["bday"]) {echo "Birthday: ".$userdata[$i]["bday"]."<br>";}
if ($userdata[$i]["anni"]) {echo "Anniversary: ".$userdata[$i]["anni"]."<br>";}
if ($userdata[$i]["spouse"]) {echo "Spouse: ".$userdata[$i]["spouse"]."<br>";}
if ($userdata[$i]["bweb"]) {
echo "Business site: <a href=\"".$userdata[$i]["bweb"]."\">".$userdata[$i]["bweb"]."</a><br>";
}
if ($userdata[$i]["email1"]) {
echo "email: <a href=\"mailto:".$userdata[$i]["email1"]."\">".$userdata[$i]["email1"]."</a><br>";
if ($userdata[$i]["email2"]) {
echo "email: <a href=\"mailto:".$userdata[$i]["email2"]."\">".$userdata[$i]["email2"]."</a><br>";
if ($userdata[$i]["email3"]) {
echo "email: <a href=\"mailto:".$userdata[$i]["email3"]."\">".$userdata[$i]["email3"]."</a><br>";
if ($userdata[$i]["email4"]) {
echo "email: <a href=\"mailto:".$userdata[$i]["email4"]."\">".$userdata[$i]["email4"]."</a><br>";
}
}
}
}
*/
if ($userdata[$i]["delay"]) {echo "<tr><td colspan=2>Notes: ".$userdata[$i]["delay"]."</td></tr>\n";}
}
?>
</table>
</body><html>
and this is the xml data structure:
<scoreboard date="20070727" last_modified="">
<go_game>
<game id="2007_06_28_nyamlb_balmlb_1" league="AA" status="FINAL" start_time="7:05PM" home_code=""/>
<team name="Orioles" code="">
<gameteam R="7" H="13" E="1"/>
</team>
<team name="Yankees" code="">
<gameteam R="8" H="9" E="1"/>
</team>
<w_pitcher wins="1" losses="0">
<pitcher name="M. Myers"/>
</w_pitcher>
<l_pitcher wins="2" losses="1">
<pitcher name="J. Parrish"/>
</l_pitcher>
<sv_pitcher saves="">
<pitcher name="M. Rivera"/>
</sv_pitcher>
</go_game>
</scoreboard>
any idea....😕