PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP基础 >> 基础文章 >> 

php解析xml文档的类

php解析xml文档的类

来源:互联网  作者:未知  发布时间:2008-01-11
一个php用于解析xml文档的类 以下为引用的内容: ? ph
一个php用于解析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   文档  
最新文章
推荐阅读
月点击排行榜