RSS订阅
PHP程序员站--WWW.PHPERZ.COM  
网站地图
高级搜索
收藏本站

 当前位置:主页 >> PHP基础 >> 基础文章 >> 文章内容
php解析xml文档的类
[收藏此页[打印本页]   
来源:互联网  作者:未知  发布时间:2008-01-11

一个php用于解析xml文档的类

以下为引用的内容:

<?php
/**
*     类名: xmlParser
*     描述: 解析xml文件,返回数组
*     其他: 偶然
*/
class 
xmlParser
{
var 
$params 
= array();  phperz.com


//-----------------------------------------------------------------------------
     /**     BEGIN function
     *
     *     作者:偶然
     *     功能:构造初始化,打开文件并读取
     *     时间:2004.3.26
     *     变量:$file ----------- xml文件路径
     *     返回:none
     *     示例:
     *
     */
     
function xmlParser($file
) php程序员站
     {
             
$fp = @fopen($file"r"
);
             if (!
$fp) die("不能打开数据源"
);


             
//读取文件
             
$this->data fread($fpfilesize($file
));

php程序员之家


             
fclose($fp
);
             
$level 
= array();
             
$xml_parser xml_parser_create
();


             
// 将xml文件读入数组
             
xml_parse_into_struct($xml_parser$this->data$vals$index
);
www.phperz.com

             
xml_parser_free($xml_parser
);


             foreach (
$vals as $xml_elem
)
             {
                 
// 元素结点展开
                 
if ($xml_elem['type'] == 'open'
) php程序员之家
                 {
                     if (
array_key_exists('attributes',$xml_elem
))
                     {
                             list(
$level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes'
]); www~phperz~com
                     }
                     else
                     {
                             
$level[$xml_elem['level']] = $xml_elem['tag'
];
                     } php程序员之家
                 }
                 if (
$xml_elem['type'] == 'complete'
)
                 {
                     
$start_level 1
;
                     
$php_stmt '$this->params'
; www.phperz.com
                     while(
$start_level $xml_elem['level'
])
                     {
                             
$php_stmt .= '[$level['.$start_level.']]'
;
                             
$start_level
++;

phperz.com


                     }
                     
$php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];'
;
                     eval(
$php_stmt
);
                 }
             }
             Return 
$this->params
; php程序员站
     }

 
 相关文章
 
发表评论
全部评论(0条)
 
 站内搜索
 热门搜索 基础  mysql  url  adodb
高级搜索 网站地图 站长工具 IP查询 收藏本站
 热点文章
 随机推荐
网站首页 | 网站地图 | 高级搜索 | RSS订阅
PHP程序员站 Copyright © 2007,PHPERZ.COM All Rights Reserved 粤ICP备07503606号 联系站长