php读取xml文件的类

发布时间:2020-07-05编辑:脚本学堂
分享一个php读取xml文件的类,使用xmpParse类库读取xml文件,学习下xmlParse函数库的用法,需要的朋友参考下。

一个简单的读取xml文件的类函数,输出数组格式,用到了xml.class.php函数库。

首先,来看这个xml类的使用方法:
 

require_once("xml.class.php");
$xmlParser=new xmlParser();
$xmlParser->xmlOpen($localfile);
var_dump($xmlParser);

附,php读取xml文件类代码:
 

复制代码 代码示例:
<?php  
/** 
* 解析XML类 

*/ 
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();  
} // www.plcxue.com
/** 
* 把变量中数据导成数组 

* @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;  
}  
}  
?>