function startElement($parser, $name, $attrs) { XMLParse::$lastname=$name; } function endElement($parser, $name) { if(name=="TITLE") XMLParse::$index++; } function characterData($parser, $data) { XMLParse::$dataarray[XMLParse::$index][XMLParse::$lastname]=$data; } class XMLParse { static public $lastname; static public $index=0; private $xml_parser; static public $dataarray; public function __construct() { $this->xml_parser = xml_parser_create(); xml_parser_set_option($this->xml_parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($this->xml_parser, "startElement", "endElement"); xml_set_character_data_handler($this->xml_parser, "characterData"); $this->dataarray=array(); } public function ReadAll($fp) { while ($data = fread($fp, 4096)) { if (!xml_parse($this->xml_parser, $data, feof($fp))) { return array(); } } xml_parser_free($this->xml_parser); return XMLParse::$dataarray; } }