<?php
/**
* 类名: xmlParser
* 描述: 解析xml文件,返回数组
* 其他: 偶然
*/
class xmlParser
{
var $params = array();
//-----------------------------------------------------------------------------
/** BEGIN function
*
* 作者:偶然
* 功能:构造初始化,打开文件并读取
* 时间:2004.3.26
* 变量:$file ----------- xml文件路径
* 返回:none
* 示例:
*
*/
function xmlParser($file)
{
$fp = @fopen($file, "r");
if (!$fp) die("不能打开数据源"); 数据挖掘交友
//读取文件
$this->data = fread($fp, filesize($file));
fclose($fp);
$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;
}
//-----------------------------------------------------------------------------
}
?>