salve a tutti,
sto usando queste funzioni per parsare il file xml

codice:
//funzione che mi ritorna un file xml in array
//var
	$struct = array(); 
	$xml_parser = xml_parser_create(); 
 
	function startElement($parser, $name, $attrs) { 
  		global $struct;
  		$tag = array("name"=>$name,"attrs"=>$attrs); 
		array_push($struct,$tag); 
	} 
 
	function data($parser, $data) { 
		global $struct,$i; 
		if(trim($data)) { 
    		$struct[count($struct)-1]['data']=$data; 
  		} 
	} 
 
	function endElement($parser, $name) { 
  		global $struct; 
 		$struct[count($struct)-2]['child'][] = $struct[count($struct)-1]; 
 		array_pop($struct); 
	} 
 
	xml_set_element_handler($xml_parser, "startElement", "endElement"); 
	xml_set_character_data_handler($xml_parser, "data"); 
 

 	//or 
	//$file = url;
	$xmlFile='prova.xml';
	$parse = xml_parse($xml_parser,file_get_contents($xmlFile)); 
 
		if(!$parse) { 
		  die("XML parsing error"); 
		} 
 
	xml_parser_free($xml_parser); 
	 
	print_r($datimodulo = $struct[0][child]);
... se inserisco il tutto in una function mi crea qualche problema con la variabile globa.. come posso risolvere?

codice:
function xmlParser($xmlFile){
//funzione che mi ritorna un file xml in array
//var
	$struct = array(); 
	$xml_parser = xml_parser_create(); 
 
	function startElement($parser, $name, $attrs) { 
  		global $struct;
  		$tag = array("name"=>$name,"attrs"=>$attrs); 
		array_push($struct,$tag); 
	} 
 
	function data($parser, $data) { 
		global $struct,$i; 
		if(trim($data)) { 
    		$struct[count($struct)-1]['data']=$data; 
  		} 
	} 
 
	function endElement($parser, $name) { 
  		global $struct; 
 		$struct[count($struct)-2]['child'][] = $struct[count($struct)-1]; 
 		array_pop($struct); 
	} 
 
	xml_set_element_handler($xml_parser, "startElement", "endElement"); 
	xml_set_character_data_handler($xml_parser, "data"); 
 

 	//or 
	//$file = url;
	
	$parse = xml_parse($xml_parser,file_get_contents($xmlFile)); 
 
		if(!$parse) { 
		  die("XML parsing error"); 
		} 
 
	xml_parser_free($xml_parser); 
	 
	return $datimodulo = $struct[0][child];
}