function->xml_read.php
<?
function trustedFile($file)
{
    // only trust local files owned by ourselves
    if (!eregi("^([a-z]+)://", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}function startElement($parser, $name, $attribs)
{
global $xml_temp_node,$xml_count;
    if($name=="ITEM") $xml_count++;
    $xml_temp_node=strtolower($name);
}function endElement($parser, $name)
{
global $xml_temp_node;
$xml_temp_node="ITEM";
}function characterData($parser, $data)
{
global $xml_result_array,$xml_temp_node,$xml_count;
    if($xml_count!=-1 && $xml_temp_node!="ITEM") $xml_result_array[$xml_temp_node][$xml_count]=$data;
    else
    {
     if($xml_temp_node!="ITEM") $xml_result_array["info"]["$xml_temp_node"]=$data;
    }
}function new_xml_parser($file)
{
    global $parser_file;    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}
function xml_read($file)
{
if (!(list($xml_parser, $fp) = new_xml_parser($file)))
{
//die("could not open XML input");
    global $xml_result_array;
    $xml_result_array['info']['total']=0;
    $xml_result_array['info']['count']=0;
return;
} while ($data = fread($fp, 4096))
{
xml_parse($xml_parser, $data, feof($fp));
}
xml_parser_free($xml_parser);
}
?>-> use<?
require_once('xml_read.php');$xml_result_array=array();
$xml_temp_node;
$xml_count=-1;$file='test.xml';
xml_read($file);   print_r(array_values($xml_result_array)); //输出结果//->结果就保存在 $xml_result_array 中
?>