Location: PHPKode > projects > Top Music module > Top Music 3.0.7/html/modules/topMusic/lib/com/sergids/common/Xml.php
<?php
class XMLParser {
   var $xml_url;
   var $xml;
   var $data;

   function XMLParser($xml_url) {
       $this->xml_url = $xml_url;
       $this->xml = xml_parser_create();
       xml_set_object($this->xml, $this);
       xml_set_element_handler($this->xml, 'startHandler', 'endHandler');
       xml_set_character_data_handler($this->xml, 'dataHandler');
       $this->parse($xml_url);
   }

   function parse($xml_url) {
       if(extension_loaded('curl')){
	       $ch = curl_init($xml_url);
	       //curl_setopt($ch, CURLOPT_URL, $xml_url);
	       curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	       $store = curl_exec ($ch);
	       $data = curl_exec ($ch);
	       curl_close ($ch);
       }else{
			if ($hf=fopen($xml_url,'r')) {               
			    for ($data='';$buf=fread($hf,1024);) {
			      $data.=$buf;
				}
			fclose($hf);
			}
		}
       $parse = xml_parse($this->xml, $data, sizeof($data));

       if (!$parse) {
           die(sprintf("XML error: %s at line %d",
               xml_error_string(xml_get_error_code($this->xml)),
                   xml_get_current_line_number($this->xml)));
                   xml_parser_free($this->xml
                 );
       }
       return true;
   }

   function startHandler($parser, $name, $attributes) {
       $data['name'] = $name;
       if ($attributes) { $data['attributes'] = $attributes; }
       $this->data[] = $data;
   }

   function dataHandler($parser, $data) {
       if ($data = trim($data)) {
           $index = count($this->data) - 1;
           // begin multi-line bug fix (use the .= operator)
           $this->data[$index]['content'] .= $data;
           // end multi-line bug fix
       }
   }

   function endHandler($parser, $name) {
       if (count($this->data) > 1) {
           $data = array_pop($this->data);
           $index = count($this->data) - 1;
           $this->data[$index]['child'][] = $data;
       }
   }
}
?>
Return current item: Top Music module