XML import через PHP

#форматы

XML создан для многих целей, одна из которых - удобство в переносимости данных из одной программы в другую. Особенно удобно создавать parser на этой основе. После простейшего парсинга, структура xml становится некоторым множеством переменных (массивом или объектом), а данные xml - значением этих переменных.

Увы для полноценного универсального xml парсера нужен большой и сложный объект, где обязательна присутсвовать рекурсия что-бы стало доступно всё богатсво этого стандарта.

Но для простейших файлов можно воспользоваться такой функцией.. 

/**  
 * Simple xml parsing function  
 * doesnt understand selfending tags like  
 *  
 * @param string $text  
 * @return array  
 */  
function xml2array($text) {  
   $reg_exp = '/<(.*?)>(.*?)/';  
   preg_match_all($reg_exp, $text, $match);  
	 
   foreach ($match[1] as $key=>$val) {  
	   if ( preg_match($reg_exp, $match[2][$key]) ) {  
		   $array[$val][] = $this->xml2array($match[2][$key]);  
	   } else {  
		   $array[$val] = $match[2][$key];  
	   }  
   }  
   return $array;  
}

Не забывайте правда и о том, что рекурсия вызывает нехилую нагрузку на память и xml-файл в 400 кб может спокойно разрастись и перейти лимит в 10 мб, отведённый по умолчанию под php-процесс.

ini_set('memory_limit','30M');