一、用法举例:1、将XML文件解释成便于使用的数组: <?php class xmlParser { var $params = array(); /** * XML文件 * * @param unknown_type $file */ function xmlOpen($file){ $fp = @fopen($file, "r"); if (!$fp) die("不能打开据源"); //取文件 $this->data = fread($fp, filesize($file)); fclose($fp); $this->xmlToArray(); } /** * * * @return unknown */ function xmlToArray() { $level = array(); $xml_parser = xml_parser_create(); // xml文件 xml_parse_into_struct($xml_parser, $this->data, $vals, $index); xml_parser_free($xml_parser); foreach ($vals as $xml_elem) { // 元素 if ($xml_elem['type'] == 'open') { if (array_key_exists('attributes',$xml_elem)) { list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']); } else { $level[$xml_elem['level']] = $xml_elem['tag']; } } if ($xml_elem['type'] == 'complete') { $start_level = 1; $php_stmt = '$this->params'; while($start_level < $xml_elem['level']) { $php_stmt .= '[$level['.$start_level.']]'; $start_level++; } $php_stmt .= '[$xml_elem[/'tag/']] = $xml_elem[/'value/'];'; eval($php_stmt); } } Return $this->params; } //----------------------------------------------------------------------------- } //使用 include('new.php'); $xml = new xmlParser(); $xml->xmlOpen('sol.xml'); print_r($xml->params); ?>