文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>一个用于解析xml文档的类

一个用于解析xml文档的类

时间:2007-02-17  来源:PHP爱好者

<?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;
}
//-----------------------------------------------------------------------------
}
?>
php爱好者站 http://www.phpfans.net 文章|教程|下载|源码|论坛.
相关阅读 更多 +
排行榜 更多 +
宝宝切水果安卓版

宝宝切水果安卓版

休闲益智 下载
儿童脑筋急转弯

儿童脑筋急转弯

休闲益智 下载
袭击现场2

袭击现场2

飞行射击 下载