关于我们┊AboutMe

昵称:Hopol(■童■)

联系:QQ:18883

邮箱:info(at)18883.com

主页:www.18883.com

手机浏览 日志归档 RSS 2.0 订阅
Register | Login

一个用于解析xml文档的类

<?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($fpfilesize($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;
     }
//-----------------------------------------------------------------------------
}
?>

Tags: php, xml,

« 上一篇 | 下一篇 »

只显示10条记录相关文章

dede5.1 UTF8商业版 (浏览: 232, 评论: 1)
dede5.1 BGK商业版 (浏览: 256, 评论: 0)
MyPic图片管理系统 (浏览: 162, 评论: 0)
PHP 美女写真 Cms (浏览: 208, 评论: 0)
Google translator API ( PHP 5 class ) (浏览: 193, 评论: 0)
MyPic v1.0 (MyPic图片管理系统) (浏览: 289, 评论: 0)
PHP在图片上写上中文[备份] (浏览: 206, 评论: 0)
DEDECMS 模板收藏 【极限资讯网】 (浏览: 497, 评论: 0)
DEDECMS 模板收藏 【CK女性站】 (浏览: 497, 评论: 0)
DEDECMS 模板收藏 【淡蓝色完整风格V1.1】 (浏览: 502, 评论: 0)

发表评论