<?php

/**
 * functie: xml_read
 * auteur: T. Jurcka <tim@fusionmedia.nl>
 * 
 * Deze functie opend het opgegenven xml document
 * en geeft een gestructureerde array terug.
 * Array (
 * 	[0] => Array (
 *		[id] => 16
 *           	[naam] => foo
 *           	[emailadres] => foo@bar.com
 *           	[website] => http://www.example.com
 *          	[bericht] => blablabla
 *           	[datum] => 2004-10-03
 *           	[tijd] => 23:06
 *      )
 *	[1] => Array ()...
 * )
 */
function xml_read($xml) {
	if (!$data = implode('', file($xml))) {
		die('kan xml document niet vinden!');
	}
	$parser = xml_parser_create();
	$params = array();
	$level = array();
	
	xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
	xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
	xml_parse_into_struct($parser, $data, $values, $index);
	xml_parser_free($parser);
	
	foreach ($values as $element) {	
		switch($element['type']) {
			case 'open' :
				if (array_key_exists('attributes', $element)) {
					list($level[$element['level']], $extra) = array_values($element['attributes']);
				}
				else { $level[$element['level']] = $element['tag']; }
				break;
				
			case 'complete' :
				$start = 1;
   				$exec = '$params';
   				while($start < $element['level']) {
     					$exec .= '[$level['.$start.']]';
     					$start++;
   				}
   				$exec .= '[$element[\'tag\']] = $element[\'value\'];';			
   				eval($exec);
				break;
		}
	}
	return $params;
}

/* gebruik: */
$parsed = xml_read('./xmlfile/sql2xml.xml');
$parsed = $parsed['result'];
for ($i = 0; $i < count($parsed); $i++) {
?>
<table class="gastenboek" width="60%" border="1" cellspacing="0" cellpadding="2"> 
  <tr> 
   <td width="88%" valign="top"> 
    <b>Gepost door</b>: <?php echo $parsed[$i]['naam']; ?> 
    <b>Gepost op</b>: <?php echo $parsed[$i]['datum']; ?> - <?php echo $parsed[$i]['tijd']; ?>
   </td> 
  </tr> 
  <tr> 
   <td valign="top"> 
      <?php echo $parsed[$i]['bericht']; ?>
      <br><hr size="1" noshade> 
       
      [<a href="mailto:<?php echo $parsed[$i]['emailadres']; ?> ">E-mail</a>] 
   </td> 
  </tr> 
 </table><br>
<?php } ?>