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

Reply via email to