i got 2 problems with this code: <?php $insideitem = false; $insidekeep = false; $insiderelic = false; $printed = false; $printedkeep = false; $tag = ""; $server = false; $da_server = ""; $da_lastguildupdate = ""; $da_lastcharupdate = ""; $da_population = ""; $da_type = ""; $da_status = ""; $da_relicorig = ""; $da_relicname = ""; $da_relictype = ""; $da_relicowner = ""; $da_keeporig = ""; $da_keepname = ""; $da_keepowner = ""; $da_keepclaimant = "";
function startElement($parser, $tagName, $attrs) { global $insideitem, $insidekeep, $insiderelic, $tag, $da_server, $da_type, $da_lastguildupdate, $da_lastcharupdate, $server, $da_relictype, $da_relicname, $da_relicorig, $da_keepname, $da_keeporig; if ($insideitem || $insiderelic || $insidekeep) { $tag = $tagName; } elseif ($tagName == "SERVER") { $insideitem = true; // PROBLEM 1, LOOK BELOW FOR DESCRIPTION! while (list ($key, $val) = each ($attrs)) { if ($key == "NAME" && $val == "Guinevere") { $server = true; $da_server = $val; print "Sant, $key - $val"; } else { $server = false; } } // end WHILE // ENDS HERE!!! if ($server) { while (list ($key, $val) = each ($attrs)) { switch($key) { case "TYPE" : $da_type = $val; break; case "LASTGUILDUPDATE" : $da_lastguildupdate = $val; break; case "LASTCHARUPDATE" : $da_lastcharupdate = $val; break; } } // end WHILE } } // PROBLEM 2,, LOOK BELOW FOR DESCRIPTION! elseif ($tagName == "RELIC" && $server) { $insiderelic = true; while (list ($key, $val) = each ($attrs)) { if ($key == "TYPE") { $da_relictype = $val; } if ($key == "NAME") { $da_relicname = $val; } if ($key == "REALM") { $da_relicorig = $val; } } // End While } // ENDS HERE!!! elseif ($tagName == "KEEP" && $server) { $insidekeep = true; while (list ($key, $val) = each ($attrs)) { if ($key == "NAME") { $da_keepname = $val; } if ($key == "REALM") { $da_keeporig = $val; } } // End While } } function characterData($parser, $data) { global $insideitem, $insidekeep, $insiderelic, $tag, $da_population, $da_status, $da_relicowner, $da_keepowner, $da_keepclaimant; if ($insideitem) { switch ($tag) { case "POPULATION": $da_population .= $data; break; case "STATUS": $da_status .= $data; break; } } if ($insiderelic) { $da_relicowner .= $data; } if ($insidekeep) { switch ($tag) { case "OWNER" : $da_keepowner .= $data; break; case "CLAIMANT" : $da_keepclaimant .= $data; break; } } } function endElement($parser, $tagName) { global $insideitem, $insidekeep, $insiderelic, $tag, $da_server, $da_population, $da_type, $da_status, $da_lastguildupdate, $da_lastcharupdate, $da_relicname, $da_relicowner, $da_relicorig, $da_relictype, $printed, $printedkeep, $da_keeporig, $da_keepname, $da_keepowner, $da_keepclaimant; if ($tagName == "SERVER" && $server == true) { print "<TR><TD><b>Server</b></TD><TD><b>Status</b></TD><TD><b>Population</b></TD>< /TR>\n"; print "<TR><TD>$da_server"; if ($da_type) { print "(<i>$da_type</i>)"; } print "</TD>"; print "<TD>$da_status</TD>"; print "<TD>$da_population</TD></TR>\n"; print "<TR><TD></TD></TR>\n"; print "<TR><TD><b>Lastguildupdate</b></TD><TD><b>Lastcharupdate</b></TD><TD></TD>< /TR>\n"; print "<TR><TD>$da_lastguildupdate</TD><TD>$da_lastcharupdate</TD></TR>\n"; } elseif ($tagName == "RELIC" && $server == true) { if (!$printed) { print "<TR><TD></TD></TR>\n"; print "<TR><TD><b>Relic Name</b></TD><TD><b>Relic Owner</b></TD><TD><b>Relic Type</b></TD></TR>\n"; $printed = true; } print "<TR><TD>"; if ($da_relicorig == "Albion") { print "<font color=\#ff0000>$da_relicname</font>"; } elseif ($da_relicorig == "Midgard") { print "<font color=\#0000ff>$da_relicname</font>"; } else { print "<font color=\#00ff00>$da_relicname</font>"; } print "</TD><TD>"; if ($da_relicowner == "Albion") { print "<font color=\#ff0000>$da_relicowner</font>"; } elseif ($da_relicowner == "Midgard") { print "<font color=\#0000ff>$da_relicowner</font>"; } else { print "<font color=\#00ff00>$da_relicowner</font>"; } print "</TD><TD>$da_relictype</TD></TR>\n"; } elseif ($tagName == "KEEP" && $server == true) { if (!$printedkeep) { print "<TR><TD></TD></TR>\n"; print "<TR><TD><b>Keep Name</b></TD><TD><b>Keep Owner</b></TD><TD><b>Claimant</b></TD></TR>\n"; $printedkeep = true; } print "<TR><TD>"; if ($da_keeporig == "Albion") { print "<font color=\#ff0000>$da_keepname</font>"; } elseif ($da_keeporig == "Midgard") { print "<font color=\#0000ff>$da_keepname</font>"; } else { print "<font color=\#00ff00>$da_keepname</font>"; } print "</TD><TD>"; if ($da_keepowner == "Albion") { print "<font color=\#ff0000>$da_keepowner</font>"; } elseif ($da_keepowner == "Midgard") { print "<font color=\#0000ff>$da_keepowner</font>"; } else { print "<font color=\#00ff00>$da_keepowner</font>"; } print "</TD><TD>$da_keepclaimant</TD></TR>\n"; } $da_server = ""; $da_lastguildupdate = ""; $da_lastcharupdate = ""; $da_population = ""; $da_type = ""; $da_status = ""; $da_relicorig = ""; $da_relicname = ""; $da_relictype = ""; $da_relicowner = ""; $da_keeporig = ""; $da_keepname = ""; $da_keepowner = ""; $da_keepclaimant = ""; $insideitem = false; $insiderelic = false; $insidekeep = false; } // gotta have this for the php-NUKE block stuff to work global $da_totalpop; // Create an XML parser $xml_parser = xml_parser_create(); // Set the functions to handle opening and closing tags xml_set_element_handler($xml_parser, "startElement", "endElement"); // Set the function to handle blocks of character data xml_set_character_data_handler($xml_parser, "characterData"); // print "<hr>\n"; print "<TABLE BORDER=0 WIDTH=0%>\n"; print "<TR>Guild: Obliteration/Midgard</TD></TR>\n\n"; // Open the XML file for reading $fp = fopen("http://www.camelotherald.com/xml/servers.xml","r") or die("Error reading RSS data."); // Read the XML file 4KB at a time while ($data = fread($fp, 4096)) // Parse each 4KB chunk with the XML parser created above xml_parse($xml_parser, $data, feof($fp)) or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); // Close the XML filef fclose($fp); print "</TABLE>\n"; // Free up memory used by the XML parser xml_parser_free($xml_parser); ?> this code is suppose to take SOME information from http://www.camelotherald.com/xml/servers.xml and print it out as HTML-text... '********************************************************'' problem 1: while (list ($key, $val) = each ($attrs)) { if ($key == "NAME" && $val == "Guinevere") { $server = true; $da_server = $val; } else { $server = false; } } // end WHILE i am trying to find a way to only retrive the information in <server name="Guinevere" type="Roleplay" lastguildupdate="2002-08-14 12:40:11" lastcharupdate="2002-08-13 05:54:27"> // copied from the url above </server> there is alot of servers and i only need to retrive the information from this server. So i am trying to see if this is the server and if it is the server the flag, $server will be true,, but i dunno if it works as it should... ? '********************************************************' problem 2: this is alittle bit of the xml code: - <server name="Guinevere" type="Roleplay" lastguildupdate="2002-08-14 12:40:11" lastcharupdate="2002-08-13 05:54:27"> <population>1002</population> <status>Up</status> - <relic name="Scabbard of Excalibur" type="Melee" realm="Albion"> <owner>Midgard</owner> </relic> - <relic name="Merlin's Staff" type="Magic" realm="Albion"> <owner>Hibernia</owner> </relic> - <relic name="Thor's Hammer" type="Melee" realm="Midgard"> <owner>Midgard</owner> </relic> - <relic name="Horn of Valhalla" type="Magic" realm="Midgard"> <owner>Hibernia</owner> </relic> - <relic name="Lug's Spear of Lightning" type="Melee" realm="Hibernia"> <owner>Midgard</owner> </relic> - <relic name="Cauldron of Dagda" type="Magic" realm="Hibernia"> <owner>Hibernia</owner> </relic> i want to get the information about the relics, but that dosent work with this code: elseif ($tagName == "RELIC" && $server) { $insiderelic = true; while (list ($key, $val) = each ($attrs)) { if ($key == "TYPE") { $da_relictype = $val; } if ($key == "NAME") { $da_relicname = $val; } if ($key == "REALM") { $da_relicorig = $val; } } // End While } any ideas of how to solve this?? '**************************************************************' any help would be appresiated! regards patrick -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php